【发布时间】:2015-03-29 08:47:38
【问题描述】:
我有一个带有一堆列的 df。每行代表每次采样行程中看到的一个物种。我想将其转换为矩阵或数据框,其中每一列是一个物种,每一行是一个采样行程。我想将其转换为使用纯函数进行分析。 我基本上想要这个的反面melting data.frame in 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
我想把它变成这样:
a b c
1 10 1 0
2 0 0 5
3 2 0 0
我试图不使用 if 语句制作一些可怕的双重 for 循环,但如果那是我必须做的......
【问题讨论】:
-
library(reshape2);acast(df1, sample.id~speciesname, value.var='count', fill=0)也可以用