[英]rename a column in a list of dataframes in using purrr::walk
我需要為列表中的所有數據框重命名第二列。 我正在嘗試使用purrr :: walk。
這是代碼:
cyl.name<- c('4-cyl', '6-cyl', '8-cyl')
cyl<- c(4,6,8)
car <- map(cyl, ~mtcars %>% filter(cyl==.x) %>%
group_by(gear) %>%
summarise(mean=mean(hp)) )
walk (seq_along(cyl.name), function (x) names(car[[x]])[2]<- cyl.name[x])
當我檢查列名稱時,所有均值列仍被命名為“ mean”。 我做錯了什么?
如果您具有這樣的列名列表,則可以使用map2
同時循環遍歷filter
變量和命名變量。 這樣一來,您便可以為列命名,而不必在創建列表后重命名。
這不涉及到使用一些tidyeval
從rlang運營與dplyr編程 。
map2(cyl, cyl.name, ~mtcars %>%
filter(cyl==.x) %>%
group_by(gear) %>%
summarise( !!.y := mean(hp)) )
[[1]]
# A tibble: 3 x 2
gear `4-cyl`
<dbl> <dbl>
1 3 97
2 4 76
3 5 102
[[2]]
# A tibble: 3 x 2
gear `6-cyl`
<dbl> <dbl>
1 3 107.5
2 4 116.5
3 5 175.0
[[3]]
# A tibble: 2 x 2
gear `8-cyl`
<dbl> <dbl>
1 3 194.1667
2 5 299.5000
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.