Можно использовать colSums
для удаления столбцов, имеющих хотя бы один NA
df1[colSums(is.na(df1))== 0]
# x2 x3 x4 x5
#1 8 6 3 5
Если он пуст (""
) вместо NA
df1[colSums(df1 == "") == 0]
данные
df1 <- structure(list(x1 = NA, x2 = 8L, x3 = 6L, x4 = 3L, x5 = 5L),
class = "data.frame", row.names = c(NA,
-1L))