我不认为这是Range join data.frames - specific date column with date ranges/intervals in R 的重复问题,因为我不打算合并数据框但是要从数据框中删除所有外部记录我在另一个数据框中指定的时间范围。
具体来说,我想在id_time
下面的文件中选择按变量hr
分组的记录,使用第二个文件dates
中的日期。每个id_time
感兴趣的时间段。
文件hr
最初有> 1000行,每行是属于个人id_time
的观察,每个观察都有Local date
中记录的日期。每个人有很多观察,每个观察都有不同的日期。大致这个文件看起来像这样:
hr<-read.table(text =
"id_time season sex Local_date Area(ha)
10C_MTHM Late_dry M 2015/09/01 12231.49898
10C_MTHM Late_dry M 2015/10/31 15883.57836
10C_MTHM Wet M 2015/11/30 2725.42549
10C_MTHM Wet M 2015/12/31 40743.25861
10C_MTHM Wet M 2016/01/31 44685.19565
10C_MTHM Wet M 2016/02/26 21313.59966
10C_MTHM Wet M 2014/12/31 36782.41615
10C_MTHM Wet M 2015/01/31 126159.3232
10C_MTHM Wet M 2015/02/28 113034.0324
10C_MTHM Early_dry M 2015/03/31 50179.50564
10C_MTHM Early_dry M 2015/04/30 29744.83677
10C_MTHM Early_dry M 2015/05/31 33990.54416
10C_MTHM Early_dry M 2015/06/30 31081.3867
10E_CHIM2 Late_dry M 2015/09/30 5467.727522
10E_CHIM2 Late_dry M 2015/10/31 925.188892
10E_CHIM2 Wet M 2015/11/30 4663.484598
10E_CHIM2 Wet M 2015/12/31 18767.86083
10E_CHIM2 Wet M 2016/01/31 25163.76076
10E_CHIM2 Wet M 2016/02/26 40432.86667
10E_CHIM2 Late_dry M 2014/09/30 12403.64243
10E_CHIM2 Late_dry M 2014/10/31 15391.80744
11C_SDBM Late_dry M 2015/07/31 292012.0909
11C_SDBM Late_dry M 2015/08/31 149293.0196
11C_SDBM Late_dry M 2015/09/30 88775.83245
11C_SDBM Late_dry M 2015/10/31 20980.49625
11C_SDBM Wet M 2015/11/30 44679.24235
11C_SDBM Wet M 2015/12/31 85124.26871
11C_SDBM Wet M 2016/01/31 4573.904479",
header = TRUE)
第二个文件dates
只有几行,此处唯一的信息是id time
文件中显示的每个hr
个字段的日期范围。这个带有日期范围的dates
文件是我想要用来选择所有具有相应个体id_time
的每个日期范围内的日期的行的文件,删除所有其他行。日期超出特定时期:
dates<-read.table(text =
"date_id start_date end_date
10C_MTHM 2015/02/24 2016/02/24
11C_SDBM 2015/01/01 2015/06/30
10E_CHIM2 2015/01/01 2016/01/01",
header = TRUE)
我的预期结果是hr文件(只有一个文件),其中包含每个id_time
个人的所有记录,其日期属于dates
文件中显示的感兴趣期间。在感兴趣的时间段之外的每个人的所有其余记录应在输出中删除。
例如,对于第一个人10C_MTHM,我希望最终数据库仅包含此个人在2015/02/24和2016/02/24内的记录,如dates
文件中所指定。等等每个人。所有这些记录都在一个数据库中。
我发现了一个与此类似的问题,但区别在于我的日期范围不在同一文件的列中,而是在第二个文件中R: Subsetting a data frame using a list of dates as the filter
如何创建代码以根据不同文件中指定的信息选择记录?
非常感谢!