在`cor`

时间:2015-07-14 16:38:34

标签: r na

为了简化,我有一个数据集如下:

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等等。似乎没有用。知道问题是什么以及如何解决它真的很有帮助。感谢。

2 个答案:

答案 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