R удалить все цвета с помощью NA, кроме одного цвета - PullRequest
0 голосов
/ 03 июля 2018

У меня есть X до X.61 кол. в таблице данных Df. Я хочу, чтобы R удалил все столбцы с NA.
Я использовал код ниже, который прекрасно работает.

Df <-  Df[, which(unlist(lapply(Df, function(x)!all(is.na(x))))),with=F]

Теперь я хочу то же самое, но хочу сохранить столбец X.52, даже если все значения NA. Как мне это сделать?

Ответы [ 3 ]

0 голосов
/ 03 июля 2018

Следующий код сохранит выбранные столбцы, даже если все их значения равны NA.

Я составлю data.frame и вместо X.52 выберу имя столбца V3. Все, что вам нужно сделать, это адаптировать код.

Df <- matrix(1:24, nrow = 4)
Df[, 2:4] <- NA
Df <- as.data.frame(Df)

inx1 <- which(names(Df) %in% "V3")
inx2 <- which(sapply(Df, function(x) !all(is.na(x))))
Df <- Df[, sort(c(inx1, inx2))]

Df
#  V1 V3 V5 V6
#1  1 NA 17 21
#2  2 NA 18 22
#3  3 NA 19 23
#4  4 NA 20 24
0 голосов
/ 03 июля 2018

Вы можете добавить это как еще одно условие в функцию which, используя «&»:

Df <-  Df[, which(unlist(lapply(Df, function(x)!all(is.na(x))))&colnames(Df)!="X.52"),with=F]
0 голосов
/ 03 июля 2018

Трудно сказать без примера, но попробуйте это:

 ids = apply(Df,2,function(x){print(x);return (NA %in% x);});
`Df[,-setdiff(ids,52)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...