我在R中有一个带有ID列和年份列的数据框。我还有另一个数据框,其中包含给定ID年组合的统计数据。例如
表A:
ID YEAR
aaa 2010
bbb 2009
ccc 2014
表B:
ID YEAR
aaa 2008
aaa 2009
aaa 2010
aaa 2011
bbb 2009
ccc 2014
ccc 2015
ccc 2016
(第3-5栏:各种统计数据)
我想删除TableB中的任何行(在R中),其中年份大于表1中ID的年份。因此结果将删除{aaa,2011; ccc,2015; ccc,2016}。
这就是我现在所拥有的:
`
TableC = TableB
for (row in nrow(TableA)){
ID = as.character(TableA[row,'ID'])
year = TableA[row,'YEAR']
TableC = TableC[! (TableC$ID==ID & TableC$YEAR>year),]
}`
问题是TableC正在重置循环的每次迭代,所以我的最终结果只是删除{ccc,2015; ccc,2016}。关于如何改变我的代码以获得我正在寻找的结果的任何想法?