我正在处理嵌套表中的水文数据。除了流(Q),我将日期分成 3 列(一列表示天,第二列表示月,第三列表示年)。
year_2008 <- list("910" = data.frame(Year = c(2008), Day=c(1:5), Month= c(1, 1, 1, 1 ,1)),
"950" = data.frame(Year = c(2008), Day=c(1:5), Month= c(1, 1, 1, 1 ,1)),
"1012" = data.frame(Year = c(2008), Day=c(1:5), Month= c(1, 1, 1, 1 ,1)),
"1087" = data.frame(Year = c(2008), Day=c(1:5), Month= c(1, 1, 1, 1 ,1)))
year_2009 <- list("910" = data.frame(Year = c(2009), Day=c(1:5), Month= c(1, 1, 1, 1 ,1)),
"950" = data.frame(Year = c(2009), Day=c(1:5), Month= c(1, 1, 1, 1 ,1)),
"1012" = data.frame(Year = c(2009), Day=c(1:5), Month= c(1, 1, 1, 1 ,1)),
"1087" = data.frame(Year = c(2009), Day=c(1:5), Month= c(1, 1, 1, 1 ,1)))
这是一个嵌套表。
year_list <- list (year_2008, year_2009)
names(year_list) <- c("2008", "2009")
我试图将这 3 列中的信息收集到一个将显示日期的单列中(在名为“日期”的新列中)。我创建了一个函数来创建日期列:
transform_date2 <- function(x) {x$date <- as.Date(with(x, paste(x$Day, x$Month, x$Year, sep="-")), "%d-%m-%Y")}
我尝试将该函数应用于嵌套表:
result1 <- lapply(year_list, `[[`, transform_date2)
这会导致错误:FUN(X[[i]], ...) 中的错误:无效的下标类型'closure'
我试着做一个循环:
result2 <- for (i in 1:seq_along(year_list)) {transform_date2}
这导致:警告消息:在 1:seq_along(year_list) 中:数值表达式有 2 个元素:仅第一个使用
我觉得我在访问嵌套表的正确“级别”时遇到问题。
我的最终目标是保留当前格式(嵌套表),删除每个嵌套表中的日、月、年列,在每个表中创建日期列并保留 Q 列。请帮忙
因为它是一个嵌套列表,所以使用嵌套lapply
:
year_list <- lapply(year_list, function(x) lapply(x, transform_date2))
在哪里transform_date2
:
transform_date2 <- function(x) {x$date <- as.Date(with(x, paste(x$Day, x$Month, x$Year, sep="-")), "%d-%m-%Y");x}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句