R:根据日期循环数据帧提取数据子集

use*_*erk 5 for-loop r subset dataframe

我有一个大型数据框,包含如下所示的数据:

        date    w    x    y    z    region
1    2012 01    21   43   12    3   NORTH
2    2012 02    32   54   21   16   NORTH
3    2012 03    14   32   65   32   NORTH
4    2012 04    65   33   75   21   NORTH
:        :      :    :    :    :       :
:        :      :    :    :    :       :
12   2012 12    32   58   53   17   NORTH
13   2012 01    12   47   43   23   SOUTH
14   2012 02    87   43   21   76   SOUTH
:        :      :    :    :    :       :
25   2012 01    12   46   84   29    EAST
26   2012 02    85   29   90   12    EAST
:        :      :    :    :    :       :
:        :      :    :    :    :       :
Run Code Online (Sandbox Code Playgroud)

我想提取具有相同date值的数据部分,例如这样做只是因为2012 01我只是创建了一个数据子集

data_1 <- subset(data, date == "2012 01")
Run Code Online (Sandbox Code Playgroud)

这给了我所有数据,2012 01但我继续将函数应用于这些数据.我希望能够将我的函数应用于我的数据的所有可能子集,因此理想情况下,我将循环遍历我的大数据帧并分别提取数据2012 01, 2012 02, 2012 03, 2012 04...并将函数应用于这些数据子集中的每一个.

但是我希望能够将这个应用到我的数据框中,即使我的数据帧长度要改变,因此它可能并不总是来自2012 01 - 2012 12,日期范围可能会有所不同,因此有时它可能会用于例如数据2011 03 - 2013 01.

Tyl*_*den 15

遍历每个唯一日期并构建子集.

uniq <- unique(unlist(data$Date))
for (i in 1:length(uniq)){
    data_1 <- subset(data, date == uniq[i])
    #your desired function
}
Run Code Online (Sandbox Code Playgroud)


sta*_*ant 10

这是你想要的吗 ? df_list <- split(data, as.factor(data$date))