1

列ヘッダーとして 2 つの列 (言語、記事) を持つ 1 つのデータ フレームがあり、次に列ヘッダーが言語とカウントである別のデータ フレームがあります。

最初のデータフレームを反復処理し、最初のデータフレームの言語列の値が2番目のデータフレームの言語列の値と一致する場合。記事列の値を2番目のデータフレームに挿入したい。

  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]
    }    
  }
}
4

2 に答える 2

2

2 つの data.frames をマージしようとしています。を使用しmergeます。

merge(wiki.template.count, wiki.lang.codes.size, by = 'language')
于 2013-04-04T05:15:42.947 に答える
1

merge列名が同じ場合に使用できます。

2 つのデータ フレームがdf1あり、df2両方に列がありlanguage、これが機能するとします。

df_merge <- merge(df1, df2, by = 'language')

df1 の代わりに df2 の順序を保持したい場合は、マージでそれらを切り替えます

df_merge <- merge(df2, df1, by = 'language')
于 2013-04-04T05:19:23.370 に答える