У меня есть 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 MAX, НЕ ЗНАЧЕНИЕ MAX КЛЕТОК
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) (NESTED 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) (NESTED 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))