我想找到使用pearson方法保存第三个变量修复的两个变量之间的部分相关性。
这是我的错误:
if(det(cvx)< .Machine $ double.eps)出错:缺少需要TRUE / FALSE的值
事实上,我在数据中缺少值,(na.rm=T
)与我无关。
答案 0 :(得分:2)
以下是OP问题的可重现示例:
library("ppcor")
varX <- seq(from=1, to=10, length=10)
varY <- seq(from=20, to=50, length=10)
varZ <- rnorm(10)
varZ[c(1,5,7)] <- NA
pcor.test(x=varX, y=varY, z=varZ)
if(det(cvx)&lt; .Machine $ double.eps){: 缺少需要TRUE / FALSE的值
这在Notes部分ppcor
包(https://www.rdocumentation.org/packages/ppcor/versions/1.1/topics/pcor.test)的文档中得到了解决:Note: Missing values are not allowed
您可以改为查看partial.r()
包的psych
功能。
library("psych")
mydata <- cbind(varX, varY, varZ)
partial.r(data=mydata, x=c("varX","varY"), y="varZ")