У меня есть таблица right_join
, где у меня есть значения NA
для некоторых столбцов, в зависимости от того, из какой таблицы произошла запись. У каждого «попадания» в таблице есть «индекс», который начинается с 0.
Я хочу group_by(hit, indx)
и выполнить некоторую условную фильтрацию. Я хочу использовать dplyr
предпочтительно.
Вот данные:
test <- tibble(hit = c(rep("101mA", 4), rep("1914A", 5)),
indx = c(0, 0, 0, 1, 0, 0, 0, 0, 1),
hit_start = c(7, 63, 105, 131, 4, 7, 56, 64, 147),
hit_end = c(112, 82, 126, 152, 82, 34, 83, 81, 166),
stamp_score = c(NA, 9.32, 9.30, 9.49, NA, NA, NA, 8.16, 9.15),
bit_score = c(76.2, NA, NA, NA, 84.7, 8.3, 0.3, NA, NA)
)
Вот таблица:
# A tibble: 9 x 6
hit indx hit_start hit_end stamp_score bit_score
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 101mA 0 7 112 NA 76.2
2 101mA 0 63 82 9.32 NA
3 101mA 0 105 126 9.30 NA
4 101mA 1 131 152 9.49 NA
5 1914A 0 4 82 NA 84.7
6 1914A 0 7 34 NA 8.3
7 1914A 0 56 83 NA 0.3
8 1914A 0 64 81 8.16 NA
9 1914A 1 147 166 9.15 NA
В каждом group_by(hit, indx)
, если естьэто даже один NA
в столбце "stamp_score", я хочу сохранить строки с записями NA
. Однако я хочу сохранить все строки, если в столбце «stamp_score» для группы нет NA
.
Вот что я ожидаю в конце:
# A tibble: 6 x 6
hit indx hit_start hit_end stamp_score bit_score
<chr> <dbl> <dbl> <dbl> <dbl> <dbl>
1 101mA 0 7 112 NA 76.2
4 101mA 1 131 152 9.49 NA
5 1914A 0 4 82 NA 84.7
6 1914A 0 7 34 NA 8.3
7 1914A 0 56 83 NA 0.3
9 1914A 1 147 166 9.15 NA
Пожалуйстаобратите внимание, что я намерен в конечном итоге использовать код для таблицы с> 10000 обращений, каждое со своим собственным "indx".