Я устанавливаю матрицу корреляции для своих данных, которая выглядит так
df <- structure(list(V1 = c(56, 123, 546, 26, 62, 6, NA, NA, NA, 15
), V2 = c(21, 231, 5, 5, 32, NA, 1, 231, 5, 200), V3 = c(NA,
NA, 24, 51, 53, 231, NA, 153, 6, 700), V4 = c(2, 10, NA, 20,
56, 1, 1, 53, 40, 5000)), .Names = c("V1", "V2", "V3", "V4"), row.names = c(NA,
10L), class = "data.frame")
Это дает следующий кадр данных:
V1 V2 V3 V4
1 56 21 NA 2
2 123 231 NA 10
3 546 5 24 NA
4 26 5 51 20
5 62 32 53 56
6 6 NA 231 1
7 NA 1 NA 1
8 NA 231 153 53
9 NA 5 6 40
10 15 200 700 5000
Обычно я использую команду complete.obs, чтобы установить мою корреляционную матрицу с помощью этой команды.
crm <- cor(df, use="complete.obs", method="pearson")
Мой вопрос здесь в том, как complete.obs обрабатывает данные? пропускает ли он любую строку, имеющую значение «NA», создает свободную таблицу «NA» и сразу же создает корреляционную матрицу?
df2 <- structure(list(V1 = c(26, 62, 15), V2 = c(5, 32, 200), V3 = c(51,
53, 700), V4 = c(20, 56, 5000)), .Names = c("V1", "V2", "V3",
"V4"), row.names = c(NA, 3L), class = "data.frame")
или он пропускает значения «NA» попарно, например, при расчете корреляции между V1 и V2, строка, которая содержит значение NA в V3 (например, строки 1 и 2 в моем примере) они тоже пропускаются?
Если это так, я с нетерпением жду создания команды, которая резервирует как можно больше данных, опуская значения NA попарно.
Большое спасибо,