【发布时间】:2020-04-30 09:43:43
【问题描述】:
我有一个包含日期的多个变量的 df。 在这些变量中,一些报告由格式符号分隔的多个日期。 对于每个相关变量中的每个单元格,我想拆分字符串,重新格式化为数据,然后选择最后一个日期。
数据
data <- data.frame(ex=c(1,2),date_1 = c("30/12/1997\n22/12/1998","15/12/1993"), date_2 = c("21/03/1997\n11/04/1996\n11/04/1996\n11/04/1996\n11/04/1996",NA))
expected <- data.frame(ex=c(1,2),date_1 = c("1998-12-22","1993-12-15"), date_2 = c("1997-03-21",NA))
代码尝试 (1) 错误:所有条目都获取 VAR 最大值而不是单元格最大值
data[grep("date",names(data),value = T)] <- lapply(data[grep("date",names(data),value = T)], function(x) max(as.Date(str_split(x,"\n")[[1]],format="%d/%m/%Y"), na.rm = T))
代码尝试 (2)(嵌套 LAPPLY)错误:代码在某处中断
data[grep("date",names(data),value = T)] <- lapply(data[grep("date",names(data),value = T)], function(y) max(y, lapply(data[grep("date",names(data),value = T)], function(x)
as.Date(str_split(x,"\n")[[1]],format="%d/%m/%Y"), na.rm = T)))
代码尝试 (3)(嵌套 LAPPLY)错误:代码在某处中断
data[grep("date",names(data),value = T)] <- lapply(data[grep("date",names(data),value = T)], function(y) max(y,function(x) as.Date(str_split(x,"\n")[[1]],format="%d/%m/%Y"), na.rm = T))
【问题讨论】: