我有一个数据框,其中两列(语言,文章)作为列标题,然后我有另一个数据框,列标题是语言和计数。
我想迭代第一个数据帧,如果第一个数据帧的语言列中的值与第二个数据帧中的语言列的值匹配。我想将articles列的值插入第二个数据帧。
language articles
1 en 4200596
2 de 1571581
3 fr 1369891
4 nl 1405514
5 it 1020971
6 es 981124
language count numArticles
1 gv 86 NA
2 sco 3 NA
3 zea 19 NA
4 szl 0 NA
5 pnb 2 NA
6 cdo 28 NA
我通过编写一个循环来完成它,但我确信这不是最好的方法,或者可能有更简洁,更快速的R方式:
for(i in 1:numberOfElements) {
for(k in 1:numberOfElements) {
if (as.character(wiki.template.count$language[i]) == as.character(wiki.lang.codes.size$language[k])) {
wiki.template.count$numArticles[i] <- wiki.lang.codes.size$articles[k]
}
}
}
答案 0 :(得分:2)
您正在尝试合并两个data.frames。使用merge
。
merge(wiki.template.count, wiki.lang.codes.size, by = 'language')
答案 1 :(得分:1)
如果列名相同,则可以使用merge
。
假设您有2个数据框df1
和df2
,并且列language
这应该可以使用
df_merge <- merge(df1, df2, by = 'language')
如果你想保留df2而不是df1的顺序,那么在合并中切换它们
df_merge <- merge(df2, df1, by = 'language')