При создании матрицы корреляции на большом наборе данных существует множество переменных, которые имеют одинаковое значение во всем, поэтому корреляция не может быть выполнена и выводится NA. Мой вопрос заключается в том, как удалить все строки и столбцы с этими значениями NA или выполнить учет этого недостатка до вывода матрицы корреляции. Так, например, в этом примере ...Удаление NA из корреляционных выходов
df <- as.data.frame(matrix(sample(0:10, 3*8, replace=TRUE), ncol=3))
df$V4 <- rep(3, times = 8)
df$V5 <- rep(2, times = 8)
correlation <- cor(df)
Я пробовал разные способы преодоления этого, во-первых, путем добавления использования в корреляции calcuation ...
correlation_two <- cor(df, use = "pairwise.complete.obs")
Но это не имеет никакого влияния. Я также пробовал различные способы удаления значений NA, но ни один из них, похоже, не работает.
output1 <- na.omit(correlation)
output2 <- correlation[complete.cases(correlation),]
output3 <-correlation[,colSums(is.na(correlation))==0]
output4 <- correlation[, !colSums(is.na(correlation)) >1,drop=FALSE] #Removing columns
output4 <- output4[!rowSums(is.na(output4)) >1,drop=FALSE,]#Then rows
Заранее спасибо.
Не специально, если вы не можете удалить или отфильтровать те столбцы со стандартным отклонением, равным нулю перед тем, корреляция? –
Извините, я удалил свой комментарий. Пожалуйста, см. Мой ответ. – Heroka