3

たくさんの列を持つ df があります。各行は、各サンプリング旅行で見られる種を表します。これを、各列が種で、各行がサンプリング旅行であるマトリックスまたはデータフレームに変換したいと思います。ビーガン関数を使用して分析用に変換したい。私は基本的に、Rでこの溶けるdata.frameの反対が欲しい

元のフォーマット

data.frame(speciesname=c("a","b","c","a"),sample.id=c(1,1,2,3),count=c(10,1,5,2))

speciesname sample.id count
1           a         1    10
2           b         1     1
3           c         2     5
4           a         3     2

私はそれを次のように変換したい:

   a b c
1 10 1 0
2  0 0 5
3  2 0 0

if ステートメントを使用して恐ろしい二重の for ループを作成しないようにしていますが、それが私がしなければならないことである場合...

4

1 に答える 1

5

使用するxtabs()

xtabs(count ~ sample.id + speciesname, df)
#          speciesname
# sample.id  a  b  c
#         1 10  1  0
#         2  0  0  5
#         3  2  0  0
于 2015-03-29T09:16:12.053 に答える