根据不同数据帧的所有协变量组合选择行

时间:2013-01-21 14:43:57

标签: r subset

我目前正在尝试弄清楚如何选择长数据帧(long)的所有行,这些行呈现相同的x1x2组合,表征另一个数据帧({{1 }})。

简化数据是:

short

long <- read.table(text = "
  id_type   x1   x2

   1       0     0  
   1       0     1
   1       1     0
   1       1     1
   2       0     0
   2       0     1
   2       1     0
   2       1     1
   3       0     0  
   3       0     1
   3       1     0
   3       1     1
   4       0     0  
   4       0     1
   4       1     0
   4       1     1", 
header=TRUE) 

预期输出为:

short <- read.table(text = "
   x1   x2    

   0     0    
   0     1", 
     header=TRUE) 

我试过用:

 id_type  x1    x2

   1       0     0  
   1       0     1
   2       0     0
   2       0     1
   3       0     0  
   3       0     1
   4       0     0  
   4       0     1

out <- long[unique(long[,c("x1", "x2")]) %in% unique(short[,c("x1", "x2")]), ] 采用错误地在这里使用..非常感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

您正在请求内部联接:

> merge(long, short)
  x1 x2 id_type
1  0  0       1
2  0  0       2
3  0  0       3
4  0  0       4
5  0  1       1
6  0  1       2
7  0  1       3
8  0  1       4