失败的运行的我的R sessionInfo():
R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252
attached base packages:
[1] stats graphics grDevices utils
[5] datasets methods base
other attached packages:
[1] caper_0.5.2 mvtnorm_1.0-2 MASS_7.3-35
[4] gsubfn_0.6-6 proto_0.3-10 picante_1.6-2
[7] nlme_3.1-118 vegan_2.2-1 lattice_0.20-29
[10] permute_0.8-3 ape_3.2
loaded via a namespace (and not attached):
[1] cluster_1.15.3 grid_3.1.2 Matrix_1.1-4
[4] mgcv_1.8-3 parallel_3.1.2 tcltk_3.1.2
[7] tools_3.1.2
我正在努力隔离哪些变量导致交互时的特定失败。 (更新:没有具体的预测因子,只是物种数量确定的超过阈值的预测因子数量)
我有一个错误,似乎是R中“caper”包的内部错误。确切的错误是:
Error in if (any(stRes > robust)) { : missing value where TRUE/FALSE needed
Where the error occurs on this line of code:
crunchMod <- crunch(f, data = contrasts)
使用下面dataSet1.txt
的7个预测变量,我发现回归与)
,)^2
和)^3
完美匹配。使用下面dataSet2.txt
的12个预测变量,我发现只有“)”有效,而)^2
和)^3
都会产生上述错误。以下是重现错误所需的最少代码:
library(caper)
library(ape)
setwd("Your_Directory")
caperDS <- read.table("dataSet1.txt", header = TRUE) #Also include "dataSet2.txt"
myTrees = read.nexus("Tree1.tre") #Also include "Tree2.tre"
contrasts <- comparative.data(myTrees, caperDS, Species)
f <- as.formula(paste(paste(names(caperDS)[2],"~"), paste(paste("(",paste(names(caperDS)[3:ncol(caperDS)], collapse="+"))),")^3")) #Vary this between ")", ")^2" and ")^3"
crunchMod <- crunch(f, data = contrasts)
print(summary(crunchMod))
由于占用的空间,我已经修改了我之前提供的数据。由于现在很明显这个错误是一个普遍的问题(见下文),你可以在http://cran.r-project.org/web/packages/caper/vignettes/caper.pdf
中找到要检查的数据集。答案 0 :(得分:0)
好的,所以我做了很多实验,答案几乎肯定是我在crunch()函数中放了太多的预测因子而且它“破了”。它可以接受的预测变量的数量取决于数据集中存在多少个主题。
我得出了这个结论,因为我删除的预测因子并不重要;只需随意删除一些就足够了。但是,我不明白为什么crunch()函数会从这种情况中产生错误而不是和平地退出(假设行为是有意的)。如果有人可以在评论/后续回答中进一步阐述这一点,我将不胜感激。