我有两张桌子。我想从第二个表中提取单个列并将其传递到第一个表中。问题是不应该复制第二个表的列的所有行,而只复制那些第一个列与第一个表匹配的行
read.table("table1")->c
read.table("table2")->d
d[,1] %in% c[,1] ->f
只会导致一个TRUE和FALSE的向量 - 但我需要行号,然后有一个带有匹配元素的行号的向量,我需要从表d第四列中精确提取这些行< / p>
d[,4]->g
g[vector with numbers,]->g1
有可能吗?
答案 0 :(得分:3)
或match
f <- d[ match(c[,1] , d[,1]) , ]
答案 1 :(得分:3)
这是一个经典的merge
:
merge(c,d[,c(1,4)],by=1)
如果数据表中有names
,则可以在不指定by
参数的情况下执行匹配。作为旁注,由于c
是一个非常常见的基函数(我在这里使用过),因此它不是变量名称的绝佳选择。