我目前正在研究一个如下所示的数据框:
data.frame(Plot_ID=c(1,1,1,1,1,2,2,2,2,3,3,3,3,3,3,3,3,3,4,4,4),
Species=c("a","a","a","b","b","c","c","b","b","b","b","d","d","d","e","e","e","e","a","a","a")
DBH=c(12,32,44,11,14,66,43,22,88,22,23,45,354,6,7,45,12,11,5,6,8))
DBH只是物种的直径。我想要创建的是物种积累曲线,但是数据包specaccum只允许不同的格式,如下所示:
data.frame (Spec1=c(1,0,2,3),Spec2=c(0,0,0,4),Spec3=c(1,1,2,3))
我的数据有超过3000行,超过100种,这使得很难相应地重新格式化数据。有没有办法轻松地重新格式化数据,或者像使用不同的包一样使用数据?
答案 0 :(得分:0)
好了一段时间后,我想起了LibreOffice的数据透视表,在这里您可以精确地格式化数据,使物种成为列,每个绘图连续,两者之间的总和。
为此,创建一个仅包含数字1的第3列,您的数据应如下所示:
write.table(d1, "~/path/of/desire/d1.csv")
使用
将数据框导出为.csv文件plot.addSeries(series,seriesFormat)
plot.redraw()
导入csv。 Libreoffice中的表,使用空格作为分隔符。删除第一列,因为它是内部R-ID并移动标题。
标记您的数据并转到数据 - >数据透视表,选择标记数据并单击确定。
的内容Loai.cay是这里的物种。将Species拖动到column-cields,将Plot_ID拖动到行字段,将Count拖动到数据字段,就像图片中的情况一样。按确定并将结果复制到一个额外的表中。按CTRL + SHIFT + S并选择另存为.csv文件。在R中导入csv文件并使用specaccum函数,如函数说明中所述。
希望这能帮到别人而不是我。