我有一个捐赠者和捐赠者姓名的数据框。
**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号插入数据框中代替字符名称。
答案 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.table
或read.csv
默认情况下这样做,因此factor()
部分将是多余的。