【发布时间】:2018-04-24 14:03:23
【问题描述】:
我有两个数据框。第一个(df1)看起来像:
Item Col1 Col2 Col3
A Food Fruit Apple
B Food Veggie NA
C xxx yyy zzz
第二个表(df2)看起来像:
Name Number
Apple Col3
Veggie Col2
我想获得如下决赛桌:
Item Name Number
A Apple Col3
B Veggie Col2
我尝试使用 for 循环:
for (i in 1:nrow(df2)){
new_df <- subset(df1, df2[i,1] %in% df1$df2[,2])
print(new_df)
}
我知道我的代码的语法是错误的。如果有人对我应该做什么有任何想法,请告诉我。谢谢!
【问题讨论】:
-
df1[cbind(1:nrow(df1),match(df2$Number,names(df1)))]
-
如果你有 Name = "Food" 和 Number = "Col1",那么最终表中“Item”的正确值就不清楚了......你想要 A 和 B 吗?
标签: r for-loop dataframe data.table