【发布时间】:2021-04-18 21:40:21
【问题描述】:
我正在尝试根据未嵌套列的值重命名嵌套数据框中的一组列。这是数据集的简化示例:
library(tidyverse)
df_pre <- tribble(
~year, ~data,
1970, tibble(GEOID_1970 = 1, TOTPOP_1970 = 2),
1980, tibble(GEOID_1980 = 3, TOTPOP_1980 = 4)
)
使用purrr,我想重命名嵌套列,以便拥有以下内容:
df_post <- tribble(
~year, ~data,
1970, tibble(GEOID = 1, TOTPOP = 2),
1980, tibble(GEOID = 3, TOTPOP = 4)
)
我尝试了多种方法,所有这些方法都会引发某种错误,例如:
library(purrr)
df_post <- df_pre %>% map2(.x = data, .y = year,
~ rename_with(str_replace,
pattern = paste0("_", .y),
replacement = ""))
#> Error: Can't convert a `tbl_df/tbl/data.frame` object to function
如何使用map2 加上rename_with 来修改嵌套列名?除了解决这个特殊问题之外,我还试图更深入地了解如何将诸如年份之类的参数传递给 map2 匿名函数。
【问题讨论】: