如何在数据框中搜索列?

时间:2016-08-08 11:22:46

标签: r

我有以下两个数据框uv。我正在尝试使用wu创建生成的第三个数据框v,以便df a的col u中的每个值都匹配在cols中df v然后在匹配列的df u中找到df b col v的第n个值。

 u<-data.frame(a=c("v2","x2","x2"),b=c(2,3,4))
 v<-data.frame(No=c(1,2,3,4,5),v1=c(2,9,3,1,7),v2=c(9,10,8,8,7),w1=c(5,7,9,4,3),
                  w2=c(4,6,1,3,2),x1=c(9,6,2,7,4),x2=c(4,4,4,2,7))

产生的数据框

       w <-data.frame(a=c("v2","x2","x2"),b=c(2,3,4),c=c(10,4,2))

1 个答案:

答案 0 :(得分:0)

我们可以match&#39; a&#39;列中&#39; u&#39;使用names的&#39; v&#39;获取column索引,cbind与&#39; b&#39;列(行索引),从&#39; v&#39;中提取值,并创建&#39; c&#39; transform的列,并将其分配给新的数据集对象(&#39; w&#39;)。

w <- transform(u, c= v[cbind(b, match(as.character(a), names(v)))])
w
#   a b  c
#1 v2 2 10
#2 x2 3  4
#3 x2 4  2