为了简化,我有一个数据集如下:
b <- 1:6
# > b
# [1] 1 2 3 4 5 6
jnk <- c(2, 4, 5, NA, 7, 9)
# > jnk
# [1] 2 4 5 NA 7 9
当我尝试:
cor(b, jnk, na.rm=TRUE)
我明白了:
> cor(b, jnk, na.rm=T)
Error in cor(b, jnk, na.rm = T) : unused argument (na.rm = T)
我也试过na.action = na.exclude
等等。似乎没有用。知道问题是什么以及如何解决它真的很有帮助。感谢。
答案 0 :(得分:29)
<强> TL; DR:改为使用:
cor(b, jnk, use="complete.obs")
阅读?cor
:
cor(x, y = NULL, use = "everything",
method = c("pearson", "kendall", "spearman"))
它没有na.rm
,它有use
。
可选字符串,提供在存在缺失值时计算协方差的方法。这必须是字符串
"everything"
,"all.obs"
,"complete.obs"
,"na.or.complete"
或"pairwise.complete.obs"
中的一个(缩写)。
选一个。每项操作的详细信息位于Details
的{{1}}部分。
答案 1 :(得分:4)
只是为了确保这个问题的答案是明确的。
要忽略NA,请使用
b <- 1:6
jnk <- c(2, 4, 5, NA, 7, 9)
cor(b, jnk, use="complete.obs")
[1] 0.9905977