Вот пример использования tidyverse
, и dplyr::filter
в частности. Легко построить правильный набор условий, мы хотим, чтобы строки были либо A == 1
, либо где !is.na(B)
и !is.na(C)
. Я также arrange
на A
, чтобы вы могли видеть, что нет строк NA
, где A == 0
.
library(tidyverse)
set.seed(100)
tbl <- data.frame(
A = sample(0:1, 20, replace = TRUE),
B = sample(c(1, 2, NA), 20, replace = TRUE),
C = sample(c(3, 4, NA), 20, replace = TRUE)
)
tbl %>%
filter((A == 1) | (!is.na(B) & !is.na(C))) %>%
arrange(A)
#> A B C
#> 1 0 2 3
#> 2 0 2 4
#> 3 0 1 4
#> 4 0 1 3
#> 5 0 2 3
#> 6 0 1 3
#> 7 0 2 3
#> 8 1 2 NA
#> 9 1 NA NA
#> 10 1 2 3
#> 11 1 2 3
#> 12 1 NA 3
#> 13 1 NA 4
#> 14 1 NA 3
#> 15 1 1 3
Создано в 2018-05-10 пакетом представ (v0.2.0).