У меня есть data.frame
, который имеет NA
в нескольких столбцах:
df <- data.frame(a0 = 1:3, a1 = c("A","B",NA), a2 = c("a",NA,NA),
a3 = rep(NA,3), stringsAsFactors = FALSE)
Я хотел бы добавить новый столбец all.na
, указывающий, являются ли столбцы: c("a1","a2","a3")
равны all(is.na)
для каждой строки.
Это можно сделать с помощью sapply
:
df$all.na <- sapply(1:nrow(df), function(x) all(is.na(df[x,c("a1","a2","a3")])))
Но я ищу что-то быстрее.
Я думал, что использование dplyr::mutate
может быть хорошим решением, но:
> df %>% dplyr::mutate(all(is.na(c(a1,a2,a3))))
a0 a1 a2 a3 all(is.na(c(a1, a2, a3)))
1 1 A a NA FALSE
2 2 B <NA> NA FALSE
3 3 <NA> <NA> NA FALSE
Не дает мне желаемого результата.
Любая идея, как получить dplyr::mutate
дать:
df$all.na <- c(FALSE, FALSE, TRUE)
На это?