可能是一个初学者问题。我无法根据其他表中的条件选择行。应该很简单,但我遗漏了一些东西。
我有两张桌子:
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
感谢。
/克里斯
答案 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