3

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

**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 号插入数据框中以代替角色名称。

4

2 回答 2

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 是否有意义。

高温高压

于 2011-11-18T18:39:53.047 回答
2

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

于 2011-11-18T18:39:41.610 回答