【发布时间】:2019-05-26 16:17:54
【问题描述】:
我正在处理一个包含跨时间案例的数据框,比如说 10/01/18-12/31/18。目前,我编写了一个脚本,允许我按日期对数据进行子集化,并且需要手动输入特定日期。这是带有虚拟数据集的脚本:
> mydata
date dummy
1 2018-10-01 21:41:00 A
2 2018-10-03 21:41:00 B
3 2018-10-12 21:41:00 C
4 2018-11-01 21:41:00 D
5 2018-11-02 21:41:00 E
6 2018-11-12 21:41:00 F
7 2018-11-15 21:41:00 G
8 2018-12-02 21:41:00 H
9 2018-12-07 21:41:00 I
10 2018-12-12 21:41:00 J
#put date into readable format
mydata$date <- as.POSIXct(mydata$date, format="%m/%d/%y %H:%M")
# TOCHANGE: Adjust time points accordingly.
t1 = mydata[mydata$date >= "2018-10-01" & mydata$date <= "2018-10-31",]
t2 = mydata[mydata$date >= "2018-11-01" & mydata$date <= "2018-11-30",]
t3 = mydata[mydata$date >= "2018-12-01" & mydata$date <= "2018-12-30",]
我觉得这可以通过函数更有效地完成,特别是因为我想在子集中创建具有不同时间迭代的子集(例如每周、每隔一周、每月)。我在想可能是一个函数,它需要输入每个子集的天数,然后根据整个数据帧的时间量循环生成子集?还是不可能将日期作为输入,而将# of subsets 作为输入会更有意义?
你会如何编写一个可以做到这一点的函数?提前感谢您的帮助!
【问题讨论】:
标签: r function dataframe subset