我有两个数据框(data.1
和data.2
),其中包含三列(CITY
,COUNTY
和STATE
)。
我想要的是根据第二个数据帧中存在的三列中的值来过滤第一个数据帧(可能有额外的,所以我需要交集)。虽然我可以在这里生成一个有效的代码:select rows in one data frame that partially match rows in another data frame
我希望有一个更通用的解决方案,例如,传递列的名称。我在left_join
中使用dplyr
知道了一个解决方案,但我不需要额外的列,我只想过滤。
data.1 <- read.table(text= "
CITY COUNTY STATE AA
1 1 1 2
2 1 1 4
1 2 1 6
2 2 1 8
1 1 2 20
2 1 2 40
1 2 2 60
2 2 2 80
1 1 3 200
2 1 3 400
1 2 3 600
2 2 3 800
1 1 4 2000
2 1 4 4000
1 2 4 6000
2 2 4 8000
1 1 5 20000
2 1 5 40000
1 2 5 60000
2 2 5 80000
", header=TRUE, na.strings=NA)
data.2 <- read.table(text= "
CITY COUNTY STATE BB
1 1 2 -10
2 1 2 -11
1 2 2 -12
2 2 2 -13
1 1 4 -14
2 1 4 -15
1 2 4 -16
2 2 4 -17
3 3 4 -18
", header=TRUE, na.strings=NA)
desired.result <- read.table(text= "
CITY COUNTY STATE AA
1 1 2 20
2 1 2 40
1 2 2 60
2 2 2 80
1 1 4 2000
2 1 4 4000
1 2 4 6000
2 2 4 8000
", header=TRUE, na.strings=NA)
我怎样才能做到这一点?