我有一堆列的df.每行代表每次采样行程所见的物种.我想将其转换为矩阵或数据框,其中每列是一个物种,每行都是一个采样行程.我想使用素食函数将其转换为分析.我基本上想要与R中的这个融合数据相反
原始格式
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
Run Code Online (Sandbox Code Playgroud)
我想将其转换为如下所示:
a b c
1 10 1 0
2 0 0 5
3 2 0 0
Run Code Online (Sandbox Code Playgroud)
我试图不用if语句做一些可怕的双循环,但如果这是我必须要做的...
运用 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
Run Code Online (Sandbox Code Playgroud)