首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R:外部函数调用(arg 1)中的NA/NaN/Inf

R:外部函数调用(arg 1)中的NA/NaN/Inf
EN

Stack Overflow用户
提问于 2017-06-09 00:32:41
回答 1查看 2K关注 0票数 0

我正在尝试使用以下代码创建相异矩阵:

代码语言:javascript
运行
复制
BC26bBrayCurtisMatrix<-vegdist(BC2_6b_OTU, method="bray", binary=FALSE, diag=FALSE, upper=FALSE,na.rm = FALSE)

我得到了这个错误:

代码语言:javascript
运行
复制
Error in vegdist(BC2_6b_OTU, method = "bray", binary = FALSE, diag = FALSE, NA/NaN/Inf in foreign function call (arg 1)

我试过了:

代码语言:javascript
运行
复制
is.na(BC2_6b_OTU)

除了表末尾的2列之外,输出将返回所有FALSE。这些在我的BC2_6b_OTU.csv文件中实际上是空的,但是在这个is.na输出之后说'TRUE‘。这会是问题所在吗?如果是,我该如何删除此行?

还有其他建议吗?我是R的新手,我很感谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2017-06-09 00:41:47

如果要删除某些列,可以执行以下操作

代码语言:javascript
运行
复制
x <- x[, c(ncol(x), ncol(x)-1)]

代码语言:javascript
运行
复制
x <- x[ , !sapply(x, FUN = function(n) any(is.na(n))))

我的猜测是这个.csv是在电子表格程序中创建的?如果是这样,请考虑删除数据集末尾的“空”列,并处理干净的数据集。

这里演示了NAs会导致您的问题。

代码语言:javascript
运行
复制
library(vegan)

data(varespec)
vare.dist <- vegdist(varespec)

varespec$sneakycol1 <- NA
varespec$sneakycol2 <- NA

sneaky.dist <- vegdist(varespec, method = "bray")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44441176

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档