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

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

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

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仍然是double),尽管上面的代码行未引发任何错误。我部分基于this帖子的答案,该帖子使用了现已弃用的mutate_each。

r
1个回答
0
投票

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

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

lappyl(master_list,premerge)
© www.soinside.com 2019 - 2024. All rights reserved.