Моя цель - присоединить фрейм данных к фреймам данных, хранящимся во вложенном столбце списка, например:
data(mtcars)
library(tidyr)
library(purrr)
mtcars_nest <- mtcars %>% rownames_to_column() %>% rename(rowname_1 = rowname) %>% select(-mpg) %>% group_by(cyl) %>% nest()
mtcars_mpg <- mtcars %>% rownames_to_column() %>% rename(rowname_2 = rowname) %>% select(rowname_2, mpg)
join_df <- function(df_nest, df_other) {
df_all <- df_nest %>% inner_join(df_other, by = c("rowname_1" = "rowname_2"))
}
join_df <- mtcars_nest %>%
mutate(new_mpg = map_df(data, join_df(., mtcars_mpg)))
Возвращает следующую ошибку:
# Error in mutate_impl(.data, dots) : Evaluation error: `by` can't contain join column `rowname_1` which is missing from LHS.
Таким образом, фрейм данных map_*
, полученный от вложенного ввода, не предлагает имя столбца (т. Е. rowname_1
) для участия в объединении. Я не могу понять, почему это так. Я передаю столбец data
, который содержит кадры данных из вложенного кадра данных.
Я хочу вывод данных из фрейма, который можно добавить в новый столбец во входном фрейме данных, например
| rowname_1 | cyl | disp |...|mpg|
|:----------|:----|:-----|:--|:--|