1

我有一个网站矩阵。我想开发一个 UPGMA 凝聚集群。我想为此使用 R 和 vegan 库。我的矩阵有一些不是所有变量都被测量的位置。

遵循类似的数据矩阵:

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,所以我不确定这是否是由于单元格没有数据。我该如何解决这个问题?

4

1 回答 1

1

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

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

如果您在 R 中正确获取数据,decostand则会因错误而停止:如果您不添加na.rm = TRUE. 下一个vegdist命令也是如此:它还需要na.rm = TRUE分析您的数据。

于 2015-06-01T15:35:23.113 回答