0

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

     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

我会很感激你的帮助。

4

1 回答 1

1

您可以使用 将字符向量转换为因子factor。因子基本上是一个数字向量以及一个属性,该属性给出了与每个数字相关联的文本,levels在 R 中被调用。人们可以使用as.numericunclass获取原始数字。然后可以将这些输入到需要数字的算法中,例如dist.

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

另请注意,如果有不同的向量,分别转换每个向量将意味着相同的数字将表示不同的文本值,反之亦然,除非两个向量都是从完全相同的一组不同值中折衷的。如果您希望这两个因素的水平相同,则必须格外小心。一种方法是连接两个向量,将其转换为一个因子,然后将结果拆分为两个因子向量。

于 2012-07-09T16:16:48.343 回答