0

我目前正在尝试弄清楚如何选择长数据帧 ( long) 中呈现相同的所有行x1以及x2表征另一个数据帧 ( 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")]), ] 

但是%in%这里用错了收养..非常感谢您的帮助!

4

1 回答 1

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
于 2013-01-21T14:46:34.537 回答