我有这样的小标题:
df <-
tibble(
x = 1:3,
light_93 = list(1:3, 5:7, 18:20),
light_94 = list(3:5, 9:11, 18:20),
light_95 = list(5:7, 44:46, 30:32))
我想创建多个新列,并给出每个light_
列列表的平均值。所以我想要这个结果:
out <-
df %>%
mutate(light_93_mean = map_dbl(light_93, mean),
light_94_mean = map_dbl(light_94, mean),
light_95_mean = map_dbl(light_95, mean))
我可以使用mutate_at
自动执行此操作吗? (我有数百个列表列。)我不知道如何使它工作得一席之地。
我们可以使用
df %>% mutate_at(vars(starts_with('light')),
list(mean = ~ map(., mean)))