-1

我有两个数据集,一个包含 X 和 Y 数据,一个包含 XY 和 Z 数据。我希望对 X、Y、Z 数据进行子集化,仅保留与第一组 X 和 Y 中的行匹配的行。

例子:

X  Y            
1  1            
1  4            
2  7


X  Y  Z               
1  1 24                 
1  2 30  
1  4 15   
2  2 40    
2  5 10    
2  7 12  

我想将这些结合起来只返回:

X  Y  Z    
1  1 24    
1  4 15    
2  7 12  

任何想法将不胜感激。

4

2 回答 2

1

?merge

R> x <- read.table(textConnection("
X Y
1 1
1 4
2 7"), header=TRUE)

R> y <- read.table(textConnection("
X Y Z
1 1 24
1 2 30
1 4 15
2 2 40
2 5 10
2 7 12"), header=TRUE)

R> merge(x, y, all=FALSE)
  X Y  Z
1 1 1 24
2 1 4 15
3 2 7 12
于 2013-10-01T12:47:09.090 回答
0
> file
  X Y  Z
1 1 1 24
2 1 2 30
3 1 4 15
4 2 2 40
5 2 5 10
6 2 7 12
> x
first second
1     1      1
2     1      4
3     2      7
> merge(x, file, by.x=x$first, by.y = file$X)
  first second  Z
1     1      1 24
2     1      4 15
3     2      7 12
于 2013-10-01T12:47:38.170 回答