使用另一个表中的两列过滤R中的数据帧?

时间:2016-11-06 22:27:00

标签: r for-loop dataframe

我在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}。关于如何改变我的代码以获得我正在寻找的结果的任何想法?

0 个答案:

没有答案