我有一个列表 state-list
,其中包含 4 个列表 wa
、tex
、cin
和 ohi
,所有这些列表都包含大约 60 个数据帧。我想对这些数据帧应用相同的功能。例如,我想添加一个均值的新列,如下所示:
library(dplyr)
df # example df from one of the lists
df %>% group_by(x) %>% mutate(mean_value = mean(value))
我该怎么做?
答案 0 :(得分:3)
我们可以使用嵌套的 map
来循环 list
library(purrr)
library(dplyr)
out <- map(state_list, ~ map(.x, ~ .x %>%
group_by(x) %>%
mutate(mean_value = mean(value)))
或者使用 base R
out <- lapply(state_list, function(lst1) lapply(lst1,
function(dat) transform(dat, mean_value = ave(value, x))))