2012-07-09 41 views
0

我是R的初学者。我必须对包含两列人名的数据进行聚类分析。我将它转换为数据框但它是字符类型。要使用dist()函数,数据框必须是数字。我的数据示例:在R中包含姓名的两列进行聚类分析

 Interviewed.Type     interviewed.Relation.Type 
1.   An1       Xuan 
2.   An2       The 
3.   An3       Ngoc 
4.   Bui       Thi 
5.   ANT       feed 
7.   Bach       Thi 
8.   Gian1       Thi 
9.   Lan5       Thi 
. 
. 
. 
1100.  Xung       Van 

我将不胜感激您的帮助。

+1

您确定要进行聚类分析而不是某种网络分析吗? – 2012-07-09 09:49:39

+0

是的..这是我的特殊学习部分...我也必须做群集分析,社区检测和网络分析。我即将完成我的网络分析,但无法进行聚类分析... – 2012-07-09 12:35:28

+0

@AlkaShah您能否提供一个示例来说明如何查看示例数据?将文本转换为数字是一个实质性的决定,你怎么做可以大大改变你的数据和模型的含义.... – 2012-07-09 12:52:17

回答

1

您可以使用factor将字符向量转换为因子。一个因素基本上是一个数字矢量以及给出与每个数字相关的文本的属性,在R中被称为levels。可以使用as.numericunclass来获得原始数字。这些然后可以被馈送到需要数字的算法中,例如, dist

请注意,数字与文本关联的顺序几乎是任意的(实际上是字母),所以数字之间的差异在大多数应用程序中没有意义。因此,在这个结果上调用dist在技术上是可行的,但并非意义重大。出于这个原因,这个答案的作者不满意它,即使原始的海报似乎对它感到高兴。 :-)

另请注意,如果存在不同的向量,分别转换每个将意味着相同的数字将表示不同的文本值,反之亦然,除非两个向量都从完全相同的一组不同的值中受损。如果您希望两个因素的水平相同,则需要额外注意。一种方法是连接两个向导,将其转化为一个因子,然后将结果分成两个因子向量。

+0

谢谢你的重要提示。这让我更清楚。 – 2012-07-09 16:35:45