我目前正在尝试对某些数据运行varpart函数,但是每次都会收到以下错误消息: “ qr.default(X,tol = 1e-06)中的错误: 外部函数调用中的NA / NaN / Inf(arg 1)“
简而言之,我的整个数据集包含有关渔具,压力水平和不同时间段的信息。我对所有数据都运行varpart函数没有问题,但是如果我仅使用有关特定齿轮和/或特定压力的数据创建一个新对象,它将不再起作用。...
我检查了缺失值,但找不到一个...
这是我的问题的一个例子:
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)
你们中的任何人是否曾经遇到过此类问题,或者知道如何解决? 谢谢!
答案 0 :(得分:1)
varpart
执行变体分区,为此,它至少需要两个变量才能对变体进行分区。您只有一个(Session
)–您提供的第二个(LONG
)是常量,因此可以解释否的变化,并且不算作变量。我们不会检查不变的“变量”,并且您会收到令人困惑的错误消息。但是,如果您使用无意义的(常量)“变量”手工制作模型,则应该收到奇怪的错误消息。我们可以添加一个针对常量的测试,但是以某种方式感到奇怪。