根据其他表中的值选择行

时间:2010-12-07 15:33:26

标签: r

可能是一个初学者问题。我无法根据其他表中的条件选择行。应该很简单,但我遗漏了一些东西。

我有两张桌子:

T1

X    C  
3    a  
4    a  
41   b

T2

A    B    C    D  
1    5    a   22  
7   11    a   27  
35  49    b   29 

我想将列D添加到T1,其中X在T2中的A和B之间,并且C = C.因此,结果表应如下所示:

T1b

X    C    D  
3    a    22  
4    a    22  
41   b    29  

感谢。

/克里斯

1 个答案:

答案 0 :(得分:2)

这是一个解决方案。

导入数据:

> con <- textConnection("X C
+ 3 a
+ 4 a
+ 41 b")
> T1 <- read.table(con, sep=" ", header=TRUE)
> close(con)

> con <- textConnection("A B C D
+ 1 5 a 22
+ 7 11 a 27
+ 35 49 b 29")
> T2 <- read.table(con, sep=" ", header=TRUE)
> close(con)

现在合并和子集:

> T3 <- merge(T1, T2)
> T3[T3$X > T3$A & T3$X < T3$B, c("X", "C", "D")]
   X C  D
1  3 a 22
3  4 a 22
5 41 b 29
相关问题