如何 运行 vegan::varpart 而没有此 "NA/NaN/Inf in foreign function call (arg 1)" 消息错误?

How to run vegan::varpart without having this "NA/NaN/Inf in foreign function call (arg 1)" message error?

我目前正在尝试 运行 我的一些数据的 varpart 函数,但我每次都会收到以下错误: “qr.default(X, tol = 1e-06) 中的错误: NA/NaN/Inf 在外部函数调用中 (arg 1)"

简而言之,我的整个数据集包含有关渔具、压力水平和不同时间段的信息。我没有问题 运行 在我的所有数据上使用 varpart 函数,但是如果我创建一个新对象只包含关于特定齿轮 and/or 特定压力的数据,它就不再起作用了....

我检查了缺失值但找不到...

这是我的问题的一个例子:

library(vegan)
#> Le chargement a nécessité le package : permute
#> Le chargement a nécessité le package : lattice
#> This is vegan 2.5-5
A<-runif(45,min=0,max=0.75)
B<-runif(45,min=0,max=0.75)
C<-runif(45,min=0,max=0.75)
SP<-data.frame(cbind(A,B,C))
Session<-as.factor(rep(c("S1","S2","S3","S4","S5"),each=9))
LONG<-rep(c(48.32287917),each=45)
data<-data.frame(cbind(Session,LONG))
data$Session<-as.factor(data$Session)
varpart<-varpart(SP,~ Session,~ LONG, data=data)
#> Error in qr.default(X, tol = 1e-06) : 
  NA/NaN/Inf in foreign function call (arg 1)

你们中有没有人以前遇到过这种问题或者知道如何解决它? 谢谢!

varpart 执行变体划分,为此它至少需要两个变量来划分变体。您只有一个 (Session) – 您提供的第二个 (LONG) 是不变的,因此将解释 no 变化并且不计入变量.我们不检查不变 "variables",您会收到一条令人困惑的错误消息。但是,如果您使用无意义的(常量)"variables" 手工制作模型,您应该会收到奇怪的错误消息。我们可以添加一个针对常量的测试,但不知何故感觉很奇怪。