我正在尝试使用以下代码制作相异度矩阵:
BC26bBrayCurtisMatrix<-vegdist(BC2_6b_OTU, method="bray", binary=FALSE, diag=FALSE, upper=FALSE,na.rm = FALSE)
我收到此错误:
Error in vegdist(BC2_6b_OTU, method = "bray", binary = FALSE, diag = FALSE, NA/NaN/Inf in foreign function call (arg 1)
我试过了:
is.na(BC2_6b_OTU)
除了表末尾的2列外,输出返回全部为FALSE。这些在我的BC2_6b_OTU.csv文件中实际上是空白的,但在此is.na输出后说“TRUE”。这可能是问题吗?如果是这样,我该如何删除这一行?
还有其他建议吗?我是R的新手,我很感激你的帮助!
答案 0 :(得分:0)
如果要删除某些列,可以执行
x <- x[, c(ncol(x), ncol(x)-1)]
或
x <- x[ , !sapply(x, FUN = function(n) any(is.na(n))))
我的猜测是.csv是在电子表格程序中创建的吗?如果是这样,请考虑删除&#34;清空&#34;数据集末尾的列,并处理干净的集合。
以下是NAs可能导致您的问题的演示。
library(vegan)
data(varespec)
vare.dist <- vegdist(varespec)
varespec$sneakycol1 <- NA
varespec$sneakycol2 <- NA
sneaky.dist <- vegdist(varespec, method = "bray")