【问题标题】:iNEXT with 0 values具有 0 值的 iNEXT
【发布时间】:2018-08-02 20:49:20
【问题描述】:

我正在将 iNEXT 应用于以下数据,但出现错误。据我观察,我的数据的组织方式与作者用作示例的蜘蛛数据相同。

dput(corn.list)
 list(A = structure(c("C2_blk1_2014", "   0", "300", "1350", " 150", 
"  0", "   0", "300", "1350", " 150", "  0", "   0", "300", "1350", 
"C2_blk1_2015", "   0", "  0", "1264", " 702", "  0", "   0", 
"  0", "1264", " 702", "  0", "   0", "  0", "1264", "C2_blk1_2016", 
"   0", "  0", "1674", " 913", "  0", "   0", "  0", "1674", 
" 913", "  0", "   0", "  0", "1674", "C2_blk1_2017", "1112", 
"  0", "5423", " 973", "  0", "1112", "  0", "5423", " 973", 
"  0", "1112", "  0", "5423", "C2_blk2_2014", " 142", "  0", 
" 994", " 568", "  0", " 142", "  0", " 994", " 568", "  0", 
" 142", "  0", " 994", "C2_blk2_2015", "   0", "  0", " 305", 
" 611", "  0", "   0", "  0", " 305", " 611", "  0", "   0", 
"  0", " 305", "C2_blk2_2016", "   0", "  0", "2266", "1133", 
"  0", "   0", "  0", "2266", "1133", "  0", "   0", "  0", "2266", 
"C2_blk2_2017", " 131", "  0", "1705", "1049", "  0", " 131", 
"  0", "1705", "1049", "  0", " 131", "  0", "1705", "C2_blk3_2014", 
"   0", "  0", " 834", "   0", "  0", "   0", "  0", " 834", 
"   0", "  0", "   0", "  0", " 834", "C2_blk3_2015", "   0", 
"  0", " 834", " 556", "  0", "   0", "  0", " 834", " 556", 
"  0", "   0", "  0", " 834", "C2_blk3_2016", " 272", "  0", 
"2446", "1223", "  0", " 272", "  0", "2446", "1223", "  0", 
" 272", "  0", "2446", "C2_blk3_2017", "   0", "  0", "3466", 
"1600", "  0", "   0", "  0", "3466", "1600", "  0", "   0", 
"  0", "3466", "C2_blk4_2014", " 136", "  0", "   0", " 272", 
"136", " 136", "  0", "   0", " 272", "136", " 136", "  0", "   0", 
"C2_blk4_2015", "   0", "  0", " 725", " 290", "  0", "   0", 
"  0", " 725", " 290", "  0", "   0", "  0", " 725", "C2_blk4_2016", 
" 136", "136", "2996", "3405", "  0", " 136", "136", "2996", 
"3405", "  0", " 136", "136", "2996", "C2_blk4_2017", "   0", 
"  0", " 958", " 274", "  0", "   0", "  0", " 958", " 274", 
"  0", "   0", "  0", " 958"), .Dim = c(14L, 16L), .Dimnames = list(
c("id", "SETSP", "SOLPT", "SONAR", "AMATA", "MORAL", "POLCO", 
"CHEAL", "DIGSA", "DATST", "ABUTH", "POLPY", "POLPE", "SONAS"
), NULL)), B = structure(c("C4_blk1_2014", "   0", "  0", 
"  966", " 966", "  0", "  0", "  0", "   0", "  0", "  966", 
" 966", "  0", "  0", "C4_blk1_2015", " 935", "  0", " 1247", 
" 779", "  0", "312", "  0", " 935", "  0", " 1247", " 779", 
"  0", "312", "C4_blk1_2016", " 134", "  0", "  668", " 936", 
"  0", "  0", "  0", " 134", "  0", "  668", " 936", "  0", "  0", 
"C4_blk1_2017", "   0", "136", "  819", "1092", "  0", "  0", 
"  0", "   0", "136", "  819", "1092", "  0", "  0", "C4_blk2_2014", 
 " 138", "  0", "  276", " 414", "  0", "  0", "  0", " 138", 
"  0", "  276", " 414", "  0", "  0", "C4_blk2_2015", "   0", 
"  0", "  755", "1962", "302", "  0", "  0", "   0", "  0", "  755", 
"1962", "302", "  0", "C4_blk2_2016", " 144", "432", " 1728", 
" 288", "  0", "  0", "  0", " 144", "432", " 1728", " 288", 
"  0", "  0", "C4_blk2_2017", "   0", "138", "10091", "2626", 
"  0", "  0", "  0", "   0", "138", "10091", "2626", "  0", "  0", 
"C4_blk3_2014", "   0", "272", " 2040", " 136", "  0", "  0", 
"  0", "   0", "272", " 2040", " 136", "  0", "  0", "C4_blk3_2015", 
"1444", "  0", "  289", "   0", "  0", "  0", "  0", "1444", 

"  0", "  289", "   0", "  0", "  0", "C4_blk3_2016", " 407", 
"  0", "    0", " 136", "  0", "  0", "  0", " 407", "  0", "    0", 
" 136", "  0", "  0", "C4_blk3_2017", " 135", "  0", "  812", 
" 812", "  0", "  0", "  0", " 135", "  0", "  812", " 812", 
"  0", "  0", "C4_blk4_2014", "   0", "  0", "  548", " 548", 
"  0", "  0", "  0", "   0", "  0", "  548", " 548", "  0", "  0", 
"C4_blk4_2015", " 723", "  0", "  434", "1592", "  0", "  0", 
"  0", " 723", "  0", "  434", "1592", "  0", "  0", "C4_blk4_2016", 
"   0", "  0", " 1599", " 666", "  0", "  0", "  0", "   0", 
"  0", " 1599", " 666", "  0", "  0", "C4_blk4_2017", " 135", 
"135", " 3781", "1621", "  0", "  0", "135", " 135", "135", " 3781", 
"1621", "  0", "  0"), .Dim = c(14L, 16L), .Dimnames = list(c("id", 
"SETSP", "SOLPT", "SONAR", "AMATA", "MORAL", "POLCO", "CHEAL", 
"DIGSA", "DATST", "ABUTH", "POLPY", "POLPE", "SONAS"), NULL)))

代码 iNEXT(corn.list,q=0,datatype = "abundance")

错误

Error in if (sum(x) == 0) stop("Zero abundance counts in one or more sample sites") : missing value where TRUE/FALSE needed

这里有蜘蛛数据 http://johnsonhsieh.github.io/iNEXT/inst/doc/Introduction.html

感谢任何帮助。

【问题讨论】:

    标签: r inext


    【解决方案1】:

    在我看来,您的列表很可能被 R 解释为由字符组成,而不是由数字向量组成。 iNEXT 需要您的数据为“数字”类型,这意味着 R 将其中的值理解为数字而不是字符串。了解 R 如何使用 str() 函数将蜘蛛数据理解为两个命名向量,每个向量只有数值:

     > str(spider)
     List of 2
     $ Girdled: num [1:26] 46 22 17 15 15 9 8 6 6 4 ...
     $ Logged : num [1:37] 88 22 16 15 13 10 8 8 7 7 ...
    

    您的数据被理解为字符串列表,而不是

    > str(corn.list)
    List of 2
    
    $ A: chr [1:14, 1:16] "C2_blk1_2014" "   0" "300" "1350" ...
    ..- attr(*, "dimnames")=List of 2
    .. ..$ : chr [1:14] "id" "SETSP" "SOLPT" "SONAR" ...
    .. ..$ : NULL
    $ B: chr [1:14, 1:16] "C4_blk1_2014" "   0" "  0" "  966" ...
    ..- attr(*, "dimnames")=List of 2
    .. ..$ : chr [1:14] "id" "SETSP" "SOLPT" "SONAR" ...
    .. ..$ : NULL
    

    为了节省您的时间,从原始数据文件开始并上传它可能会更容易,以便 R 更好地理解结构(我通常使用 read.csv())。

    可以在 R 中重新格式化它。我开始走这条路,但很快意识到我的粗略代码会删除您的菌株名称并弄乱您需要的每个“社区”的对齐方式下一步。无论如何,我已经将我的代码粘贴在下面,以防它对您作为起点或参考有用。

    #first create a function that will convert your data to numeric   
    replace_space<-function(strng){as.numeric(gsub(" ", "", strng))}
    
    #then apply the function to every column in each element of your list
    cl2<-lapply(corn.list, function(x){sapply(x, replace_space)})
    
    #Things that were legitimate character strings get converted to NA. if you didn't care about them at all, you could remove them: 
    cl3<-lapply(cl2, function(x){apply(x,2, function(y){y[complete.cases(y)]})})
    

    【讨论】:

      猜你喜欢
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-23
      • 1970-01-01
      • 2015-10-09
      • 2020-04-12
      • 1970-01-01
      相关资源
      最近更新 更多