首页 > 解决方案 > r:通过函数运行所有数据帧以获取最小和最大日期

问题描述

我有两个数据框df1& df2,每个数据框都有一个不同的Date列(名称相同,大小写相同)。

我创建了一个函数来告诉我通过它运行每个数据帧时的最小最大日期:

dMMfunc<- function(df){
  maxDate<- max(df[['Date']])
  minDate<- min(df[['Date']])
  return(c(maxDate, minDate))
}

> dMMfunc(df1)
[1] "2017-11-26" "2017-11-20"

然后,我创建了一个数据帧列表以通过我的函数,读取每个数据帧的最小值和最大值,但它会抛出错误,见下文:

dfList<- c(df1, df2)
> lapply(dfList, dMMfunc)
Error in df[["Date"]] : subscript out of bounds

如何让我的函数返回每个数据帧的最小值最大值 Date

标签: rfunction

解决方案


我们需要list而不是c

dfList <- list(df1, df2)

不同之处在于c将第二个数据集的列连接到第一个数据集并返回 a listof vectors 而不是 a listof data.frame,例如

c(mtcars, iris)

list(mtcars, iris)

数据

df1 <- data.frame(Date = Sys.Date() + 1:5)
df2 <- data.frame(Date = Sys.Date() - 1:5)

推荐阅读