我有一个数据框列表
vars <- c("Col_1", "Col_2", "Col_3")
list_df <- list(
tibble(
a = 1,
b = 2,
c = 3
),
tibble (
d = 1,
e = 2,
f = 3
)
)
Run Code Online (Sandbox Code Playgroud)
我想使用 重命名列,vars但我想我在这里遗漏了一些东西。
map(list_df, ~rename_all(.x, vars))
Run Code Online (Sandbox Code Playgroud)
结果应该是:
list(
tibble(
Col_1 = 1,
Col_2 = 2,
Col_3 = 3
),
tibble (
Col_1 = 1,
Col_2 = 2,
Col_3 = 3
)
)
Run Code Online (Sandbox Code Playgroud)
无论初始列名如何,我都希望它可以工作(并且所有数据框始终只有三列。这可能吗?
我们需要~内部rename_all
library(purrr)
library(dplyr)
map(list_df, ~rename_all(.x, ~ vars))
#[[1]]
# A tibble: 1 x 3
# Col_1 Col_2 Col_3
# <dbl> <dbl> <dbl>
#1 1 2 3
#[[2]]
# A tibble: 1 x 3
# Col_1 Col_2 Col_3
# <dbl> <dbl> <dbl>
#1 1 2 3
Run Code Online (Sandbox Code Playgroud)
或与 set_names/setNames
map(list_df, set_names, vars)
map(list_df, setNames, vars)
Run Code Online (Sandbox Code Playgroud)