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