I have the data similar to df3. To reproduce the data, run the following:
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")
I need to filter the nested data using something like this:
df4 <- df3 %>% filter(when C==vec1, B (part of nested data now) < 5
when C==vec2, B (part of nested data now) >4)
or may be like this:
df4 <- df3 %>% map(.$data, ~filter((identicle(.$C, vec1) & B < 5) |
identical(.$C, vec2) & B >4))
I just have df3 and I want df4. How should I do the above filtering using purrr to get the following desired df4 output.
df11 <- tibble::tribble(
~A, ~B,
"X", 4L,
"Y", 5L,
"Y", 8L) %>%
group_by(A) %>%
nest()
df4 <- df11 %>% left_join(df2, by = "A")