我正在尝试获取一个社区丰度矩阵的多样性指标/估计量和相异性度量,该矩阵包含从多个集合中抽取的样本。具体来说,我正在运行Anne Chao的函数:
SimilarityMult
(估计N个社区之间的各种相似性指数)。富度和基于富度的N社区相似性指数都包括在内。” –赵超(Anne Chao)的SpadeR
软件包。
我使用包裹:
library(devtools)
install_github('AnneChao/SpadeR')
library(SpadeR)
library(vegan)
问题
我的社区丰度矩阵设置:行中有108种,列中有144个站点/样本。
我跑步:
SimilarityMult(bugs,"abundance",q=1,nboot=200,"relative")
产生:
错误代码“ rmultinom(nboot,sum(X2),p [,2])中存在错误:NA in 概率向量”
我跑步:
SimilarityMult(bugs,"abundance",q=2,nboot=200,"relative")
产生:
错误代码“ rmultinom(1,ni [k],p [,k])中的错误:概率为NA 向量”
下面,我提供了可以重新创建我的数据矩阵并用于运行有问题的代码以查找错误源的信息。我共享数据的一个子集,其中包括前20行和前25列。
我跑步:
dput(bugs[1:20,c(1:25)])
输出:
bugs <- structure(list(V1 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 8L, 0L, 0L, 12L, 0L, 0L, 0L), V2 = c(0L, 0L, 0L,
7L, 0L, 1L, 0L, 5L, 0L, 0L, 0L, 0L, 2L, 235L, 0L, 0L, 453L, 8L,
0L, 0L), V3 = c(0L, 0L, 0L, 13L, 0L, 0L, 0L, 2L, 2L, 0L, 0L,
1L, 0L, 82L, 0L, 0L, 60L, 1L, 8L, 0L), V4 = c(0L, 0L, 0L, 4L,
0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 1051L, 0L, 0L, 48L, 58L,
0L, 0L), V5 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 47L, 0L, 0L, 5L, 3L, 0L, 0L), V6 = c(0L, 0L, 0L, 18L, 0L,
3L, 0L, 7L, 5L, 0L, 0L, 3L, 1L, 271L, 0L, 0L, 176L, 21L, 0L,
0L), V7 = c(0L, 1L, 0L, 16L, 0L, 21L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 2L, 0L, 0L, 35L, 0L, 0L, 0L), V8 = c(0L, 0L, 0L, 17L, 1L,
1L, 0L, 2L, 3L, 0L, 0L, 0L, 0L, 52L, 0L, 1L, 28L, 32L, 0L, 0L
), V9 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
29L, 0L, 0L, 8L, 3L, 8L, 0L), V10 = c(0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 2L, 0L, 25L, 0L, 0L, 14L, 0L, 0L, 0L), V11 = c(0L,
12L, 0L, 14L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 61L, 0L, 0L,
32L, 0L, 6L, 0L), V12 = c(0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 152L, 0L, 0L, 8L, 3L, 0L, 0L), V13 = c(0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 15L,
0L, 0L, 0L), V14 = c(0L, 0L, 0L, 14L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 67L, 0L, 0L, 23L, 10L, 0L, 0L), V15 = c(0L, 2L, 0L,
5L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 2L, 1L, 0L, 1L, 2L, 4L,
0L), V16 = c(0L, 0L, 1L, 10L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L,
0L, 30L, 0L, 0L, 2L, 18L, 0L, 0L), V17 = c(0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 3L, 2L, 2L, 0L),
V18 = c(0L, 0L, 0L, 1L, 0L, 1L, 0L, 4L, 0L, 0L, 0L, 0L, 0L,
14L, 0L, 0L, 37L, 10L, 0L, 0L), V19 = c(0L, 1L, 0L, 13L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 10L, 0L, 0L, 14L, 26L,
0L, 0L), V20 = c(0L, 0L, 0L, 6L, 0L, 2L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 18L, 0L, 0L, 2L, 12L, 0L, 0L), V21 = c(0L, 0L,
0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 0L, 0L, 0L, 41L, 0L, 0L,
13L, 0L, 0L, 0L), V22 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 101L, 0L, 0L, 15L, 5L, 0L, 0L), V23 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 15L, 0L,
0L, 17L, 0L, 1L, 0L), V24 = c(0L, 0L, 0L, 0L, 0L, 0L, 0L,
0L, 0L, 0L, 0L, 0L, 0L, 2L, 0L, 0L, 0L, 2L, 0L, 0L), V25 = c(0L,
0L, 0L, 0L, 0L, 0L, 0L, 0L, 7L, 0L, 0L, 0L, 0L, 134L, 0L,
0L, 19L, 0L, 0L, 0L)), row.names = c("1", "2", "3", "4",
"5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15",
"16", "17", "18", "19", "20"), class = "data.frame")
产生数据框
bugs
将数据框“错误”输入上述SimilarityMult
函数中。
我不明白为什么代码会失败。如何使该功能正常工作?任何有关此问题的解决方案/建议将不胜感激。
谢谢!
答案 0 :(得分:2)
我花了很长时间尝试解决您的问题,包括复习source code和issues noted on GitHub。我注意到您也在那里打开了一个问题,但是我怀疑作者放弃了该项目。
我不知道为什么,但是如果我们删除社区15
和17
,则您的代码将执行。
SimilarityMult(bugs[,-c(15,17)],"abundance",q=1,nboot=200,"relative")
#...
# Pairwise similarity matrix:
#
# Horn(i,j) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
# 1 1.000 0.991 0.931 0.760 0.761 0.952 0.648 0.802 0.796 0.939 0.869 0.715 0.877 0.849 0.555 0.889 0.657 0.571 0.893 0.819 0.983 0.463 0.820
# 2 1.000 0.900 0.644 0.814 0.930 0.638 0.756 0.772 0.912 0.799 0.734 0.954 0.838 0.634 0.912 0.616 0.654 0.875 0.813 0.961 0.669 0.774
# 3 1.000 0.764 0.837 0.955 0.611 0.846 0.887 0.926 0.924 0.808 0.833 0.910 0.723 0.842 0.665 0.732 0.891 0.843 0.959 0.597 0.841
# 4 1.000 0.993 0.830 0.286 0.763 0.834 0.849 0.731 0.996 0.513 0.875 0.797 0.629 0.601 0.790 0.909 0.984 0.770 0.873 0.945
# 5 1.000 0.918 0.265 0.807 0.890 0.877 0.800 0.985 0.445 0.914 0.795 0.658 0.573 0.774 0.928 0.998 0.792 0.801 0.948
# 6 1.000 0.623 0.891 0.841 0.955 0.859 0.871 0.853 0.950 0.803 0.911 0.732 0.817 0.926 0.920 0.938 0.797 0.893
# 7 1.000 0.579 0.341 0.484 0.622 0.299 0.771 0.541 0.345 0.656 0.592 0.457 0.404 0.310 0.587 0.175 0.309
# 8 1.000 0.776 0.784 0.776 0.749 0.695 0.931 0.923 0.872 0.911 0.932 0.769 0.788 0.782 0.888 0.722
# 9 1.000 0.842 0.843 0.837 0.623 0.849 0.723 0.707 0.605 0.722 0.856 0.884 0.888 0.764 0.825
# 10 1.000 0.863 0.843 0.738 0.875 0.634 0.773 0.574 0.628 0.946 0.904 0.940 0.528 0.902
# 11 1.000 0.795 0.766 0.879 0.687 0.728 0.676 0.681 0.855 0.802 0.901 0.497 0.792
# 12 1.000 0.394 0.868 0.761 0.561 0.491 0.753 0.912 0.980 0.743 0.743 0.953
# 13 1.000 0.698 0.354 0.895 0.613 0.391 0.644 0.547 0.848 0.352 0.558
# 14 1.000 0.889 0.794 0.811 0.887 0.884 0.909 0.847 0.828 0.843
# 15 1.000 0.682 0.848 0.956 0.664 0.757 0.571 0.927 0.644
# 16 1.000 0.792 0.704 0.706 0.681 0.847 0.743 0.597
# 17 1.000 0.863 0.530 0.565 0.614 0.829 0.439
# 18 1.000 0.647 0.742 0.580 0.913 0.618
# 19 1.000 0.948 0.904 0.550 0.946
# 20 1.000 0.835 0.794 0.957
# 21 1.000 0.486 0.833
# 22 1.000 0.554
# 23 1.000
我知道这不太可能完全解决您的问题,但希望它将帮助您或其他人解决问题。