R:使用“Tabasco”函数进行Clusteranalysis

时间:2017-01-13 10:43:11

标签: r error-handling cluster-analysis

我正在尝试使用我的数据进行群集分析。我观察了不同横断面的鱼类丰度。现在我想知道物种分布之间的相似性以及鱼类群落在不同生境中的分布情况。 我发现了一个非常好的群集分析示例,他们使用“沙丘”数据来做到这一点。除了明显的聚类功能外,他们还使用了vegemite和tabasco函数来获得一个数字,其中相似的物种彼此相邻。 所以我尝试对我的数据集做同样的事情,但我得到的只是这个错误:

if(any(x <0))停止时出错(“函数不能与负数据值一起使用”):   缺少需要TRUE / FALSE的值

首先,我不知道R在哪里看到负值,因为我只有丰富,所以不能有负值。我还检查了is.na函数,但它也找不到任何缺失值。另一件事是,我不知道在tabasco中使用哪个参数来指示R应如何处理缺失值。我尝试了na.action,但它不起作用。 如果有人可以帮助我,我会很高兴。 所以这是示例脚本,它可以完美地运行:

library(vegan)
data(dune)
d <- vegdist(dune)
ccom <- hclust(d, method="complete")
plot(ccom, hang=-1)
cl <- cutree(ccom, 3)
ord <- cmdscale(d)
ordiplot(ord)
ordihull(ord, cl, lty=3)
den <- as.dendrogram(ccom)
x <- scores(ord, display = "sites", choices = 1)
oden <- reorder(den, x)
vegemite(dune, oden)
tabasco(dune, ccom)

这是我的剧本:

transekte<-read.csv2("C:/Users/Nancy/Dropbox/Masterarbeit/Statistik_Neu/Arten_MW_Transekte.csv")
library(vegan)
d<-vegdist(transekte,method="bray",upper=FALSE)
clusters<-hclust(d,method="complete")
plot(clusters,hang=-1)
clustercut<-cutree(clusters,2)
clustercut
table(clustercut)
rect.hclust(clusters,2,border="red")
ord <- cmdscale(d)
ordiplot(ord)
ordihull(ord, clustercut, lty=3)
den <- as.dendrogram(clusters)
x <- scores(ord, display = "sites", choices = 1)
oden <- reorder(den, x)
vegemite(transekte, oden,scale="log")
tabasco(transekte[2:37,], clusters)

我需要扩展我的数据,因为vegemite只接受一个字符的值。我排除了tabasco的第一行,因为如果我只是说“transekte”它会一直告诉我有一个错误,因为其中一行不是=或&gt;比零。它似乎包括分析的物种名称,这当然会触发错误。 下面是使用csv文件和我的R脚本链接到我的Dropbox: https://www.dropbox.com/sh/y8xzq0bs6mus727/AADmasrXxUp6JTTHN5Gr9eufa?dl=0 如果有人能帮助我,我将非常感激。

0 个答案:

没有答案