我有两个数据集,一个包含X和Y数据,一个包含X Y和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
非常感谢任何想法。
答案 0 :(得分: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
答案 1 :(得分: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