【问题标题】:Is there a way to define the first column as site names for specaccum in the R vegan package to avoid errors?有没有办法将第一列定义为 R vegan 包中 specaccum 的站点名称以避免错误?
【发布时间】:2020-01-08 19:41:32
【问题描述】:

我相信我正在努力解决数据框问题。在我的数据集中,我的第一列是站点名称,称它们为 Tech 1 到 Tech 8。我的其余列​​分别分配给一个物种,下方的二进制 0 或 1 表示它们在每个站点中的存在。每次我使用 specaccum 函数时,它都会返回“colSums(x) 中的错误:'x' 必须是数字”。删除第一列只会导致 1 个站点和错误,但包含该列只会导致更多错误。如何操作我的数据框,使第一列成为站点名称?提前致谢

【问题讨论】:

    标签: r dataframe vegan


    【解决方案1】:

    这是一个简单的解决方案

    library(vegan)
    
    #I suppose your data is something like this
    df<-data.frame(Sites = paste("Tech",1:20),
               Sp1 = rep(c(1,0),each=10),
               Sp2 = rep(c(1,0,0,1),each=5),
               Sp3 = rep(c(0,1,0,1),each=5))
    
    #Change df from data.frame to numeric matrix, excluding the first column
    mat<-data.matrix(df[,-1])
    #Add first column as row names
    row.names(mat)<-df[,1]
    #Apply specaccum function
    specaccum(mat)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-07
      • 1970-01-01
      • 2013-04-06
      • 2018-07-11
      • 2019-09-07
      • 1970-01-01
      相关资源
      最近更新 更多