Вам необходимо создать новый профиль обеспечения с использованием расширения службы BundleID.
Если x
Ваш data.frame
(или matrix
) затем
x[ ,apply(x, 2, function(z) !any(is.na(z)))]
Начиная с Вашего использования в качестве примера NULL
, is.na(·)
будет заменен is.null(·)
Кроме того, можно посмотреть на subset(·)
.
Можно отбросить любую строку, содержащую отсутствие, использующее na.omit (), однако это не то, что Вы хотите. Кроме того, в настоящее время принимаемый ответ является неправильным. Это дает Вам полные столбцы, но не отбрасывает строки, которые имеют одно или несколько отсутствующих значений, который является тем, относительно чего попросили. Корректный ответ может быть получен как:
> a <- data.frame(a=c(1,2),b=c(NA,1), c=c(3,4))
> a
a b c
1 1 NA 3
2 2 1 4
> na.omit(a)[,colSums(is.na(a))==0]
a c
2 2 4
Чтобы видеть, что вышеупомянутый ответ является неправильным:
> a[ ,apply(a, 2, function(z) !any(is.na(z)))]
a c
1 1 3
2 2 4
Строка 1 должна быть отброшена из-за NA в столбце 2.