【发布时间】:2016-02-10 19:59:57
【问题描述】:
我得到了一个生态数据的数据框,其中包含几对物种丰富度的列,如下所示:
df <- data.frame(site = 1:3,
sp1 = c("A","A","X"), abund1 = c(10,20,30),
sp2 = c("B","B","Y"), abund2 = c(10,20,30),
sp3 = c("C","Y","Z"), abund3 = c(10,20,30))
site sp1 abund1 sp2 abund2 sp3 abund3
1 1 A 10 B 10 C 10
2 2 A 20 B 20 Y 20
3 3 X 30 Y 30 Z 30
(我使用的实际数据有 6 对物种和丰度列)
我需要将其转换为站点与物种格式以进行任何进一步的分析,如下所示:
site A B C X Y Z
1 1 10 10 10 0 0 0
2 2 20 20 0 0 20 0
3 3 0 0 0 30 30 30
我唯一能想到的就是首先将其转换为包含“site”、“species”和“abundance”列的 3 列数据框,然后使用 reshape 包。为此,我正在考虑使用 for 循环遍历原始数据帧的每一行,将每一行转换为一个新数据帧,然后使用 rbind 将它们全部组合在一起。但这似乎很笨拙,我想知道是否有人可以提出更好的方法?
【问题讨论】:
标签: r