R将名称转换为数字

时间:2011-11-18 18:31:33

标签: r pearson pvclust

我有一个捐赠者和捐赠者姓名的数据框。

**donation**              **Donor**
 25.00               Steve Smith
 20.00               Jack Johnson
 50.00               Mary Jackson
  ...                   ...

我正在尝试使用pvclust包进行一些群集。不幸的是,包似乎没有采用非数字数据。

> rs1.pv1 <- parPvclust(cl, rs1, nboot=10)
Error in cor(x, method = "pearson", use = use.cor) : 'x' must be numeric

我有两个问题。

1)是否有其他包装或方法可以做得更好?

2)有没有办法“规范化”捐赠者名单?即获得一个唯一的捐赠者名称列表,为每个捐赠者名称分配一个ID号,然后将ID号插入数据框中代替字符名称。

2 个答案:

答案 0 :(得分:5)

对于2号:

#If donor is a factor then

as.numeric(donor)

#will transform your factor to numeric.
#If it isn't, tranform it to a factor and the to numeric
as.numeric(as.factor(donor))

但是,我不确定将捐赠者列表转换为数字然后使用cor是有意义的。

HTH

答案 1 :(得分:2)

rs1 <- transform(rs1, Donor=as.numeric(factor(Donor)))怎么样? (警告:我没有想过你正在做什么,知道这是否有意义 - 所以我只回答问题#2,而不是问题#1)。通常情况Donor已经是一个因素(例如read.tableread.csv默认情况下这样做,因此factor()部分将是多余的。