如何使用mapply突变数据框列表中的列

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

我有一个数据框列表-此列表中的某些数据框要求其列突变为日期列。我想知道是否可以使用mapply进行此操作。

[这是我的尝试(files1是数据帧的列表,c(“ data,data1”)是文件1内数据帧的名称,c(“ adfFlowDate”,“ datedate”)是相应数据帧内列的名称:

files2 <- repair_dates(files1, c("data, data1"), c("adfFlowDate","datedate"))

无效的功能:

repair_dates <- function(data, df_list, col_list) {
mapply(function(n, i) data[[n]] <<- data[[n]] %>% mutate(i = as.Date(i, origin = "1970-01-01")), df_list, col_list)
return(data)
}
r dplyr purrr
1个回答
1
投票

您的设置在这里相当复杂,在另一个函数的mapply内部调用一个匿名函数,该函数需要三个参数,所有这些参数都与单个嵌套对象有关。

就个人而言,我不会通过容纳使mutate在此处工作所需的非标准评估来增加这种复杂性(尽管可能)。也许像这样(尽管没有任何可重现的数据很难说)-

repair_dates <- function(data, df_list, col_list) 
{
  mapply(function(n, i) {
           data[[n]][[i]] <- as.Date(data[[n]][[i]], origin = "1970-01-01")
           return(data[[n]])
         }, df_list, col_list, SIMPLIFY = FALSE)
}
© www.soinside.com 2019 - 2024. All rights reserved.