【R】二つの表の比較・置換をしたい
Rにて、二つの表を比較し、条件にマッチしたときだけ置換するような
処理をしたいです。
元の表は下記です。
|CODE|A品|B品|C品|D品|E品|
|:--|:--:|--:|
|A100|AA1|BA1|CA1|DA1|EA1|
|A101|AA3|BA3|CA3|DA3|EA3|
|A102|A56|B56|C56|D56|E56|
|A103|Agi|Bgi|Cgi|Dgi|Egi|
~省略~~
|Z997|AAB|BAB|CAB|DAB|EA1|
|Z998|AAC|BAC|CAC|DAC|EA3|
|Z999|AOG|BOG|COG|DOG|E56|
上の表を、下記の表に従って更新したいと思います。
CODE | A品 | B品 |
---|---|---|
A100 | AA100 | BA105 |
A101 | AA301 | BA306 |
A102 | A5607 | B5608 |
ただし、上記の二つの表は
同じ列数ではありません。
上の表の列数>下の表の列数
という関係になっております。
上記を踏まえて、出力として出したいのは
下記のようなデータです。
|CODE|A品|B品|C品|D品|E品|
|:--|:--:|--:|
|A100|AA100|BA105|CA1|DA1|EA1|
|A101|AA301|BA306|CA3|DA3|EA3|
|A102|A5607|B5608|C56|D56|E56|
|A103|Agi|Bgi|Cgi|Dgi|Egi|
~省略~~
|Z997|AAB|BAB|CAB|DAB|EA1|
|Z998|AAC|BAC|CAC|DAC|EA3|
|Z999|AOG|BOG|COG|DOG|E56|
下記のようなプログラムを書きました。
R
1 2上の表 <- mutate(上の表,A品_更新=ifelse(上の表$A品==下の表$A品,下の表$A品,0))
しかし下記のようなエラーがおきました。
Error in mutate_impl(.data, dots) :
ColumnA品_更新
must be length 752 (the number of rows) or one, not 16464
In addition: Warning message:
In 上の表$A品==下の表$A品 :
longer object length is not a multiple of shorter object length
列の数が一致していないため、上記のようなエラーが起きてしまったと思います。
どのようにすれば実現するでしょうか。
どうぞよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。