как удалить строки со всеми нулевыми значениями в R

#r #unique

#r #уникальный

Вопрос:

У меня есть следующая матрица:

 id A    B    C
1  1    2    5
2  4    6    7
3  NULL NULL NULL
4  NULL 4    6
 

Я хотел бы удалить только строку с идентификатором 3. Обратите внимание, что когда я использую unique() ее, она все равно сохраняется, потому что идентификатор уникален сам по себе.

Комментарии:

1. Невозможно иметь NULL значения в обычном столбце. У вас есть list столбец или "NULL" (символ)

2. Я думаю, у меня есть столбец списка…. это определенно не персонаж

3. В этом случае решение, которое я опубликовал, должно сработать. Я создал небольшой воспроизводимый пример, но не уверен, что это правильная структура, которая у вас есть. Пожалуйста, проверьте

Ответ №1:

Возможно, что столбцы list , потому NULL что не будут существовать в a vector . Если это так , то

 i1 <- Reduce(`amp;`, lapply(df1[-1], function(x) sapply(x, is.null)))
df1[!i1,]
#   id A B C
#1  1 1 2 5
#2  2 4 6 7
#4  4   4 6
 

Если NULL это символ "NULL" , опция

 i1 <- rowSums(df1[-1] == "NULL") == ncol(df1[-1])
df1[!i1,]
 

данные

 df1 <- data.frame(id = 1:4, A = I(list(1, 4, NULL, NULL)),
     B = I(list(2, 6, NULL, 4)), C = I(list(5, 7, NULL, 6)))