У меня есть данные, похожие на df3. Чтобы воспроизвести данные, выполните следующее:
vec1 <- c("A", "B")
vec2 <- c("A", "B", "C")
df1 <- tibble::tribble(
~A, ~B,
"X", 4L,
"X", 9L,
"Y", 5L,
"Y", 2L,
"Y", 8L,
"Y", 2L) %>%
group_by(A) %>%
nest()
df2 <- tibble::tribble(
~A, ~C,
"X", vec1,
"Y", vec2)
df3 <- df1 %>% left_join(df2, by = "A")
Мне нужно отфильтровать вложенные данные, используя что-то вроде этого:
df4 <- df3 %>% filter(when C==vec1, B (part of nested data now) < 5
when C==vec2, B (part of nested data now) >4)
или может быть так:
df4 <- df3 %>% map(.$data, ~filter((identicle(.$C, vec1) & B < 5) |
identical(.$C, vec2) & B >4))
У меня просто есть df3, и я хочу df4. Как я должен сделать вышеупомянутую фильтрацию, используя purrr, чтобы получить следующий желаемый вывод df4.
df11 <- tibble::tribble(
~A, ~B,
"X", 4L,
"Y", 5L,
"Y", 8L) %>%
group_by(A) %>%
nest()
df4 <- df11 %>% left_join(df2, by = "A")