我有一个网站矩阵。我想开发一个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,所以我不确定这是否是由于没有数据的单元格。我该如何解决这个问题?
答案 0 :(得分:1)
R不认为数据在矩阵中是数字,但至少其中一些被解释为字符变量并更改为因子。读入int后检查数据。如果所有数据都是数字,则sum(env)
给出数值结果。使用str()
或summary()
函数进行详细检查。
从R的角度来看,您的数据文件具有混合格式。 R函数read.csv
假定项以逗号(,
)分隔,小数分隔符为句点(.
),read.csv2
假定项由冒号({{ {1}})和小数点分隔符为逗号;
。你混合这两个约定。您可以读取这样格式化的数据,但您可能必须同时提供,
和sep
参数。
如果您在R中正确获取数据,则dec
将停止并显示错误:如果您未添加decostand
,则不会接受缺失值。下一个na.rm = TRUE
命令也是如此:它还需要vegdist
来分析您的数据。