R 中具有 NoData 值的 UPGMA 簇

A UPGMA cluster in R with NoData values

我有一个站点矩阵。我想开发一个 UPGMA 聚集集群。我想为此使用 R 和素食库。我的矩阵中有一些地方并未测量所有变量。

遵循类似的数据矩阵:

Variable 1;Variable 2;Variable 3;Variable 4;Variable 5
0.5849774671338231;0.7962161133598957;0.3478909861199184;0.8027122599553912;0.5596553797833573
0.5904142034898171;0.18185393432022612;0.5503250366728479;NA;0.05657408486342197
0.2265148074206368;0.6345513807275411;0.8048128547418062;0.3303602674038131;0.8924461773052935
0.020429460126217602;0.18850489885886157;0.26412619465769416;0.8020472793070729;NA
0.006945970735023677;0.8404983401121199;0.058385134042814646;0.5750066564897788;0.737599672122899
0.9909722313946067;0.22356808747617019;0.7290078902086897;0.5621006367587756;0.3387823531518016
0.5932907022602052;0.899773235815933;0.5441346748937264;0.8045695319247985;0.6183003409599681
0.6520679140573288;0.5419713133237936;NA;0.7890033752744002;0.8561828607592286
0.31285906479192593;0.3396351688936058;0.5733594373520889;0.03867689654415574;0.1975784885854912
0.5045966366726562;0.6553489439611587;0.029929403932252963;0.42777351534900676;0.8787135401098227

我打算用下面的代码来做:

library(vegan)
# env <- read.csv("matrix_of_sites.csv")
env.norm <- decostand(env, method = "normalize") # Normalizing data here
env.ch <- vegdist(env.nom, method = "euclidean")
env.ch.UPGMA <- hclust(env.ch, method="average")
plot(env.ch.UPGMA)

在我 运行 第二行之后,我得到这个错误:

Error in x^2 : non-numeric argument to binary operator

我不熟悉R,所以我不确定这是不是因为单元格没有数据。我该如何解决?

R 认为矩阵中的数据不是数字,但至少其中一些被解释为字符变量并更改为因子。将 int 读入 R 后检查数据。如果所有数据都是数字,则 sum(env) 给出数字结果。使用str()summary()功能进行详细检查。

从 R 的角度来看,您的数据文件具有混合格式。 R 函数 read.csv 假定项目由逗号分隔 (,),小数点分隔符是句点 (.),而 read.csv2 假设项目由冒号分隔 (;),小数点分隔符为逗号,。你混合了这两个约定。您可以读取这样格式的数据,但您可能必须同时提供 sepdec 参数。

如果您在 R 中正确获取数据,那么 decostand 将因错误而停止:如果您不添加 na.rm = TRUE,它不会接受缺失值。下一个 vegdist 命令也一样:它也需要 na.rm = TRUE 来分析你的数据。