【问题标题】:Creating a species Accumulation Curve with different format创建不同格式的物种累积曲线
【发布时间】:2016-01-01 18:41:04
【问题描述】:

我目前正在处理如下所示的数据框:

    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 多行,其中有一百多个物种,因此很难相应地重新格式化数据。有没有办法轻松地重新格式化数据,或者像使用不同的包一样使用数据?

【问题讨论】:

  • 这应该格式化您需要的社区矩阵table(df[['Plot_ID']], df[['Species']])
  • 1 分钟太晚了;D。我想这也可以,谢谢!

标签: r formatting dataframe vegan


【解决方案1】:

过了一会儿,我想起了 LibreOffice 的数据透视表,您可以在其中准确地格式化数据以将物种列在列中,将每个图列在一行中,并在其间求和。

为此,创建一个仅包含数字 1 的第三列,您的数据应如下所示:

d1<-data.frame(Plot_ID=c(1,1,2,2,3,3), 
               Species=c("a","b","a","c","d","c"), 
               Count=c(1,1,1,1,1,1))

使用将数​​据框导出为 .csv 文件

write.table(d1, "~/path/of/desire/d1.csv")

导入 csv。 Libreoffice 中的表格,使用空格作为分隔符。删除第一列,因为它是内部 R-ID 并移动标题。

标记您的数据并转到数据->数据透视表,选择标记的数据并单击确定。

你会看到类似

Loai.cay 是这里的物种。将 Species 拖到列字段,将 Plot_ID 拖到行字段,将计数拖到数据字段,如图所示。按 OK 并将结果复制到一个额外的表格中。按 CTRL+SHIFT+S 并选择另存为 .csv 文件。在 R 中导入 csv 文件,并按照函数说明中的说明使用 specaccum 函数。

希望这对我以外的其他人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多