Поведение cor () в R различается между отдельными векторами и data.frame

Я пытаюсь получить коэффициент корреляции Пирсона для всех строк в кадре данных относительно друг друга. есть пустые значения (NA), и это, похоже, представляет проблему, с которой я не сталкиваюсь при запуске cor () на 2 векторах с пропущенными значениями. Это правильный результат для двух векторов:

x <- c(NA, 4.5, NA, 4, NA, 1)
y <- c(2.5, 3.5, 3, 3.5, 3, 2.5)
cor(x,y, use = "complete.obs")
[1] 0.9912407

и вот результат, когда они являются частью фрейма данных:

cor(t(critics1), use = "complete.obs")
   y  a  b  c  d  e  x
y  1 NA NA NA NA NA NA
a NA  1  1  1 -1  1 -1
b NA  1  1  1 -1  1 -1
c NA  1  1  1 -1  1 -1
d NA -1 -1 -1  1 -1  1
e NA  1  1  1 -1  1 -1
x NA -1 -1 -1  1 -1  1
Warning message:
In cor(t(critics1), use = "complete.obs") : the standard deviation is zero

Почему параметр использования не имеет такого же эффекта? Вот как выглядит фреймворк Critics1:

film1 film2 film3 film4 film5 film6
y   2.5   3.5   3.0   3.5   3.0   2.5
a   3.0   3.5   1.5   5.0   3.0   3.5
b   2.5   3.0    NA   3.5   4.0    NA
c    NA   3.5   3.0   4.0   4.5   2.5
d   3.0   4.0   2.0   3.0   3.0   2.0
e   3.0   4.0    NA   5.0   3.0   3.5
x    NA   4.5    NA   4.0    NA   1.0
5
задан Josh O'Brien 6 December 2011 в 19:30
поделиться