проверить пустые или не значения в столбцах в R

0

У меня есть dataframe "d1" из большой таблицы MySQL. Мне нужно найти неиспользуемые столбцы (которые содержат только NA или пустые строки). (см. вопрос " Найти столбцы со всеми отсутствующими значениями").

Кажется, это работает нормально:

allmisscols <- apply(d1,2, function(x)all(is.na(x)));
colswithallmiss <-names(allmisscols[allmisscols>0]);
cat( colswithallmiss,sep="\n");

...

allmisscols <- apply(d1,2, function(x)all(x==''));
colswithallmiss <-names(allmisscols[allmisscols>0]);
cat( colswithallmiss,sep="\n");

...

хотя второй дает также "NA" среди названий столбцов; Я не понимаю, почему.

Но когда я пытаюсь их объединить:

allmisscols <- apply(d1,2, function(x)all(is.na(x)||x=='') );  
colswithallmiss <-names(allmisscols[allmisscols>0]);    
print("the columns with all values missing");    
print(colswithallmiss);

Я вижу столбец в результате, который фактически содержит значение в моей таблице!

То же самое дает следующее:

библиотека (stringr); sapply (d1, function (x) all (any (is.na(x) || (str_trim (x) == ""))))

Поэтому мои вопросы:

  1. Почему у меня такие неожиданные результаты?
  2. Как я могу получить список столбцов, который содержит только пустые или значения N/A?
Теги:
dataframe
na

1 ответ

1

Попробуй это:

allmisscols <- sapply(dt, function(x) all(is.na(x) | x == '' ))

Примечание. Вы использовали OR как double '||' пытаясь сделать его одним. Прочитайте это сообщение SO: булевы операторы && и ||

Ещё вопросы

Сообщество Overcoder
Наверх
Меню