Я пытаюсь расположить значения в порядке убывания в точной группе во вложенном фрейме данных. Мои входные данные выглядят так. У меня есть две переменные группировки (group1
и group2
) и три значения (то есть id
, value2
, value3
).
library(tidyverse)
set.seed(1234)
df <- tibble(group1 = c(rep(LETTERS[1:3], 4)),
group2 = c(rep(0, 6), rep(2, 6)),
value2 = rnorm(12, 20, sd = 10),
value3 = rnorm(12, 20, sd = 50)) %>%
group_by(group1) %>%
mutate(id = c(1:4)) %>%
ungroup()
Я решил сгруппировать их по group1
и group2
, а затем nest()
:
df_nested <- df %>%
group_by(group1, group2) %>%
nest()
# A tibble: 6 x 3
# Groups: group1, group2 [6]
group1 group2 data
<chr> <dbl> <list>
1 A 0 <tibble [2 x 3]>
2 B 0 <tibble [2 x 3]>
3 C 0 <tibble [2 x 3]>
4 A 2 <tibble [2 x 3]>
5 B 2 <tibble [2 x 3]>
6 C 2 <tibble [2 x 3]>
Отлично. Теперь мне нужно отсортировать только те data
, которые group2
равны 2
по id
. Однако я получаю следующую ошибку:
df_nested %>%
mutate(data = map2_df(.x = data, .y = group2,
~ifelse(.y == 2, arrange(-.x$id),
.x)))
Ошибка: аргумент 1 должен иметь имена