Subsetting a data frame based on contents of another data frame

前端 未结 1 1825
夕颜
夕颜 2020-11-28 12:59

I have two data.frames. For examples sake let\'s say they look like this:

df1 <- data.frame(x=rep(letters[1:26], 16))
df2 <- data.frame(y=letters[1:4]         


        
相关标签:
1条回答
  • 2020-11-28 13:33

    Both %in% and match() can be used for this. Here is the former:

    > which( df1$x %in% df2$y )
     [1]   1   2   3   4  27  28  29  30  53  54  55  56  79  80  81  82 105
    [18] 106 107 108 131 132 133 134 157 158 159 160 183 184 185 186 209 210
    [35] 211 212 235 236 237 238 261 262 263 264 287 288 289 290 313 314 315
    [52] 316 339 340 341 342 365 366 367 368 391 392 393 394
    > 
    >
    > table(df1[ which( df1$x %in% df2$y ), "x"])
    
     a  b  c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s  t  u  v  w  x  y 
    16 16 16 16  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0 
     z 
     0 
    > 
    
    0 讨论(0)
提交回复
热议问题