У меня есть фрейм данных с кучей вложенных фреймов в нем, и я хотел бы применить dplyr :: select к каждому из этих вложенных фреймов данных.Вот пример
library(tidyverse)
mtcars %>%
group_by(cyl) %>%
nest %>%
mutate(data2 = ~map(data, dplyr::select(.,-mpg)))
Я думаю, что это приведет к кадру данных с тремя столбцами.cyl
: число цилиндров, data
: вложенные данные, data2
: то же самое, что и данные, за исключением того, что у каждого элемента не будет столбца mpg.
Вместо R происходит сбой:
*** caught segfault ***
address 0x7ffc1e445000, cause 'memory not mapped'
Traceback:
1: .Call(`_dplyr_mutate_impl`, df, dots)
2: mutate_impl(.data, dots)
3: mutate.tbl_df(., data2 = ~map(data, dplyr::select(., -mpg)))
4: mutate(., data2 = ~map(data, dplyr::select(., -mpg)))
5: function_list[[k]](value)
6: withVisible(function_list[[k]](value))
7: freduce(value, `_function_list`)
8: `_fseq`(`_lhs`)
9: eval(quote(`_fseq`(`_lhs`)), env, env)
10: eval(quote(`_fseq`(`_lhs`)), env, env)
11: withVisible(eval(quote(`_fseq`(`_lhs`)), env, env))
12: mtcars %>% group_by(cyl) %>% nest %>% mutate(data2 = ~map(data, dplyr::select(., -mpg)))
Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Я понимаю, что мог бы получить нужные столбцы, если бы применил операцию выбора перед вложением, но это было бы менее аналогично моей реальной проблеме.Может кто-нибудь объяснить мне, что я здесь делаю не так?Спасибо за любой совет.