我有以下两个数据框u
和v
。我正在尝试使用w
和u
创建生成的第三个数据框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))
答案 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