私は一意のIDを使用するテーブルを持っていますが、それらのIDには一貫性のない読み込み可能な名前があります。これは、月の名前よりも複雑ですが、もっと簡単な例のために、のは、それは次のようになります言わせて:彼らは「2月」または「マーチ」8つの異なる方法で綴られている可能性があることを除いて不完全なルックアップテーブルからデータを更新するにはどうすればよいですか?
demo_frame <- read.table(text=" Month_id Month_name Number
1 Jan 37
2 Feb 63
3 March 9
3 Mar 150
2 February 49", header=TRUE)
を。私もバリエーションを持た名に対して一貫性のある名前が含まれているクリーンなデータフレームを持っている:
month_lookup <- read.table(text=" Month_id Month_name
2 Feb
3 Mar", header=TRUE)
私がこれまで取得したい:
1 Jan 37
2 Feb 63
3 Mar 9
3 Mar 150
2 Feb 49"
は私がmerge(month_lookup, demo_frame, by = "Month_id")
を試みたが、それはすべて1月の値を落としたので、 「01月」ルックアップテーブルに存在しません:
Month_id Month_name.x Month_name.y Number
1 2 Feb Feb 63
2 2 Feb February 49
3 3 Mar March 9
4 3 Mar Mar 150
How to replace data.frame column names with string in corresponding lookup table in Rの私の読み取りは、私がplyr::mapvalues
を使用できるようにするべきだということですが、私は叔父です私がid
をname
にどのようにマッピングするかについての例とドキュメントから。私は「3月」と「3月」を「3月」に置き換えて言うだけではありません。検索の各値についてSET month_name = 'Mar' WHERE month_id = 3
と言う必要があります。
なぜ2つのテーブルをまとめてマージするだけではないのですか? – bramtayl
申し訳ありません。 'merge'がどこに失敗したかを含んでいたはずです。一定。 – Amanda
ルックアップテーブルにJanを追加するだけですか?ルックアップテーブルは 'data.frame(month.abb = month.abb、Month_id = 1:12)'で簡単に生成できます。 – bramtayl