0

我有两张桌子。我想从第二个表中提取一个列并将其传递到第一个表中。问题是,并非第二个表的列的所有行都应该被复制,而是只复制那些第一个列与第一个表匹配的行

read.table("table1")->c
read.table("table2")->d
d[,1] %in% c[,1] ->f 

只会导致一个带有 TRUE 和 FALSE 的向量 - 但我需要行号,然后有一个带有匹配元素的行号的向量,我需要从表 d 第四列中准确提取这些行

d[,4]->g
g[vector with numbers,]->g1

有简单的可能性吗?

4

2 回答 2

3

Or with match

f <- d[ match(c[,1] , d[,1]) , ]
于 2013-03-13T11:17:20.730 回答
3

这是经典merge

merge(c,d[,c(1,4)],by=1)

如果您names的数据表中有,则可以在不指定by参数的情况下执行匹配。附带说明一下,因为c它是一个非常常见的基本函数(我在这里使用过),所以它不是变量名的好选择。

于 2013-03-13T11:20:30.000 回答