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

2つの質問があります。

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を使用することがまったく意味があるかどうかはわかりません。

HTH

于 2011-11-18T18:39:53.047 に答える
2

どうrs1 <- transform(rs1, Donor=as.numeric(factor(Donor)))ですか?(警告:私はあなたが何をしているのかを十分に考えていないので、それが理にかなっているかどうかを知ることができません-したがって、私は質問#1ではなく質問#2にのみ答えています)。通常Donor、すでに要因になっているため(これは、たとえば、デフォルトで実行されるread.tableread.csv、実行される)、factor()パーツは冗長になります。

于 2011-11-18T18:39:41.610 に答える