如何在小标题中使用`mutate_at`作为列表列?

问题描述 投票:0回答:1

我有这样的小标题:

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自动执行此操作吗? (我有数百个列表列。)我不知道如何使它工作得一席之地。

r dplyr tidyverse tibble
1个回答
0
投票

我们可以使用

df %>% mutate_at(vars(starts_with('light')), 
        list(mean = ~ map(., mean)))
© www.soinside.com 2019 - 2024. All rights reserved.