r - R vegan vegdist 不计算大多数地块之间的距离
问题描述
我正在尝试为我的数据创建一些 MDS 图。我正在使用 vegan 包的 vegdist ,它不会产生任何错误,但是当我查看生成的矩阵时,下对角线处到处都是空值,只有上对角线应该是空的。
我的代码:
data <- read.csv("nematoda.csv",header=TRUE) # 180 samples with 22 values, 6 of which are env variables
data <- data[apply(data[,-1:-6],1,function(x) !all(x==0)),] # to get rid of sites with no species information
# Transform data into relative abundances
data.total <- decostand(data[,7:length(data)], method="total")
# Distance with Bray-Curtis
data.bray <- vegdist(data.total, method="bray")
data.bray
1 2 3 5 7 8 10 11 12 13
2 0.00000000
3 0.00000000 0.00000000
5 0.41421356 0.41421356 0.41421356
7 0.00000000 0.00000000 0.00000000 0.41421356
8 0.00000000 0.00000000 0.00000000 0.41421356 0.00000000
10 0.00000000 0.00000000 0.00000000 0.41421356 0.00000000 0.00000000
14 15 16 17 18 20 21 22 23 24
2
3
5
7
8
10
25 27 28 29 30 31 32 33 34 36
2
3
5
7
8
10
37 38 40 42 44 45 46 47 48 49
2
3
5
7
8
10
50 51 52 53 55 56 57 58 60 61
2
3
5
7
8
10
62 63 64 65 66 67 68 69 70 71
2
3
5
7
8
10
72 73 75 76 77 78 79 80 81 82
2
3
5
7
8
10
83 84 85 86 87 88 89 90 91 93
2
3
5
7
8
10
94 95 96 97 98 99 100 101 102 103
2
3
5
7
8
10
104 106 107 108 109 110 111 112 115 117
2
3
5
7
8
10
118 119 120 121 122 124 125 126 127 128
2
3
5
7
8
10
129 130 131 132 133 134 135 136 137 138
2
3
5
7
8
10
139 140 141 142 143 144 145 147 148 149
2
3
5
7
8
10
150 151 152 153 154 155 156 157 158 159
2
3
5
7
8
10
160 161 162 163 164 165 166 167 168 169
2
3
5
7
8
10
170 171 172 173 174 175 176 177 179
2
3
5
7
8
10
[ reached getOption("max.print") -- omitted 153 rows ]
我尝试了不同的转换,但都一样。当我使用来自不同项目的示例数据集甚至是朋友的数据框时 - 使用完全相同的代码,我看到了他们的整个表......不知道为什么我的会导致问题。我的很多物种丰度值都是 0,但是这会导致不完整的距离矩阵吗?
我还使用从一开始就给出的物种信息尝试了我的数据框(即不使用 data[,-1:-6] 从数据框中提取它,这给了我完全相同的、不完整的输出。
此外,我确实有很多物种出现“一次”(所以我的数据框中有很多 1),我怀疑这可能会导致转换问题?虽然我不知道应该如何处理转换。
解决方案
推荐阅读
- three.js - 三 JS:透视相机中的轴测投影(等轴测视图、二轴测视图和三轴测视图)
- grpc-web - 安装 protoc-gen-grpc-web
- python - 尽我所能理解这一点: AttributeError: 'NoneType' object has no attribute 'text'
- javascript - Express 将 URL 中的“%2F”替换为“/”
- arrays - 有没有办法传递(索引)在 SwiftUI 的 ForEach 中按下了哪个按钮?
- python - Python 如何使用 (4,500) 标记 numpy 形状
- python - “anaconda 提示”和“IPython 控制台”有什么区别?
- typescript - 为什么以下方法不给出语法错误?
- flutter - 如何在颤振中制作截图动画?
- docker - 为什么 docker 不支持 docker stack 的 http api?