将函数应用于列表中数据框的特定列

时间:2020-04-17 14:02:01

标签: r

我有一个需要合并的具有公用列的数据框列表,但是在合并之前,我需要先将某些列强制转换为字符类型。为了解决这个问题,我编写了以下内容:

master_list <- lapply(master_list, function(x) x %>%
                     mutate_at(.vars = vars(master_list$x$'send date',
                                            master_list$x$'send time',
                                            master_list$x$'Monthly',
                                            master_list$x$'InteractionEventDate'),
                               .funs = as.character))

但是,当我查看列表中任何一个数据帧中的这些列时,都没有进行更改(例如,InteractionEventDate仍然是双精度),尽管上面的代码行未引发任何错误。我部分基于this帖子的答案,该帖子使用了现已弃用的mutate_each。

1 个答案:

答案 0 :(得分:0)

您的方法在这里有点round回。因此,也许首先使用dplyr逻辑定义一个函数,然后将其应用于列表?

premerge <- function(df){
            df %>%
               mutate_at(.vars = c("send date","send time", "Monthly","InteractionEventDate"), .funs = as.character)                        
              }

lappyl(master_list,premerge)