Например, у меня есть два набора данных (A, B), в которых есть столбец оценок, столбец местоположения (Англия или Уэльс) и столбец месяца. Если в наборе данных A есть только месяцы с января по октябрь, а в наборе данных B — только месяцы с апреля по ноябрь, есть ли способ отфильтровать мои данные, чтобы включить только месяцы с апреля по октябрь? Это для объединения данных в статистических тестах.
В моем фактическом наборе данных более сотни категориальных переменных, и, возможно, половина из них не совпадают между группами, поэтому делать это вручную неэффективно.





Охватывает ли этот воспроизводимый пример то, что вы хотите сделать?
library(tidyverse)
dfa <- tribble(~location, ~month, ~a_score,
"England", 1, 1,
"England", 2, 1,
"England", 3, 1,
"Wales", 1, 1,
"Wales", 2, 1,
"Wales", 3, 1
)
dfb <- tribble(~location, ~month, ~b_score,
"England", 2, 2,
"England", 3, 2,
"England", 4, 2,
"Wales", 2, 2,
"Wales", 3, 2,
"Wales", 4, 2
)
dfa |> inner_join(dfb, by = c("location", "month"))
#> # A tibble: 4 × 4
#> location month a_score b_score
#> <chr> <dbl> <dbl> <dbl>
#> 1 England 2 1 2
#> 2 England 3 1 2
#> 3 Wales 2 1 2
#> 4 Wales 3 1 2
Created on 2022-05-16 by the reprex package (v2.0.1)
Да, похоже, это именно то, что я хотел, я никогда не знал о функции inner_join, но предположил, что она должна где-то существовать! Спасибо.