2015-07-14 1 views
5

Для упрощения, у меня есть набор данных, который выглядит следующим образом:значения NA не исключенные в `cor`

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 и т. Д. Нет, похоже, работает. Было бы очень полезно узнать, в чем проблема, и как я могу это исправить. Благодарю.

ответ

19

Читать ?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 от ?cor.

+0

Очень раздражает часть о 'r' является несоответствие w.r.t. 'na.rm' и его варианты ... – MichaelChirico

+3

По крайней мере' help (foo) 'согласован. – Spacedman

+0

Да. Тем не менее, я надеюсь, что они (во всех функциях 'base'/out of the box, по крайней мере) объединяются в какой-то момент ... – MichaelChirico

1

Просто убедитесь, что ответ на этот вопрос ясен.

Игнорирование NA, используйте

b <- 1:6 
jnk <- c(2, 4, 5, NA, 7, 9) 
cor(b, jnk, use="complete.obs") 
[1] 0.9905977 
Смежные вопросы