假设有一个数据框(称为df1)
203 Feb 2014 353
204 Feb 2015 416
205 Feb 2057 2
206 Feb 2058 1
207 Feb 2062 1
208 Feb 2064 1
209 Feb 2065 1
210 Feb 2066 4
211 Feb 2067 10
212 Feb 2068 3
213 Jan 1969 123
214 Jan 1970 120
215 Jan 1971 162
216 Jan 1972 159
217 Jan 1973 109
218 Jan 1974 98
和另一个数据帧(称为df2)
1 Feb 2014
2 Jan 1974
然后我如何制作df1的子集以便
204 Feb 2015 416
218 Jan 1974 98
有没有办法用基础R做这个?
答案 0 :(得分:1)
假设您的数据如下所示:
df1 <- read.table(text='203 "Feb 2014" 353
204 "Feb 2015" 416
205 "Feb 2057" 2
206 "Feb 2058" 1
207 "Feb 2062" 1
208 "Feb 2064" 1
209 "Feb 2065" 1
210 "Feb 2066" 4
211 "Feb 2067" 10
212 "Feb 2068" 3
213 "Jan 1969" 123
214 "Jan 1970" 120
215 "Jan 1971" 162
216 "Jan 1972" 159
217 "Jan 1973" 109
218 "Jan 1974" 98')
df2 <- read.table(text='1 "Feb 2015"
2 "Jan 1974"')
并且假设您的意思是Feb 2015
而不是Feb 2014
(因为2015年2月的另一列为416),您可以这样做:
#you use the %in% operator to find which elements of df2 exist in df1
#and use those to subset df1
df1[df1$V2 %in% df2$V2, ]
V1 V2 V3
2 204 Feb 2015 416
16 218 Jan 1974 98
答案 1 :(得分:0)
尝试dplyr
library(dplyr)
df2 %>% left_join(df1)