如何删除 R 中所有 NULL 值的行

how to remove rows with all NULL values in R

我有以下矩阵:

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

我只想删除 ID 为 3 的行。请注意,当我使用 unique() 时,它仍会保留,因为 ID 本身是唯一的。

列可能是 list,因为 NULL 不会存在于 vector 中。如果是的话

i1 <- Reduce(`&`, 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)))