2017-07-28 15 views
0

以下の構造体/値を持つデータフレームがあり、データフレームを(行単位で)調べ、最初の列( "One" )他の列のセル、彼らはNAでない場合にのみへ:Data.frame条件に基づいて値をコピーして貼り付けます

マイデータ:

One   Two Three Four 
1 Bar_2_Foo NA NA  1 
2 Mur_4_Doo  1 NA  2 
3 Bur_3_Hoo NA  1 NA 

私が達成したいこと:

One   Two Three Four 
1 Bar_2_Foo NA NA  Bar_2_Foo_1 
2 Mur_4_Doo Mur_4_Doo_1 NA  Mur_4_Doo_2 
3 Bur_3_Hoo NA  Bur_3_Hoo_1 NA 

どのようにこれを達成するためのアイデアは素晴らしいだろう。ありがとう。

+0

Rベース、それが改善され、 'CBIND(データ[1]、(データ[2:4]適用することができ、2、関数(I)ifelse(is.na(I)、NA、ペースト(data [、1]、i、sep = "_")))))) –

+0

ありがとう!これは私が必要とするものを正確に見ています。 Rが開始し、行を繰り返すように見えますが(時間がかかると判断されます)、結果のファイルには変更が反映されません。私は関数が動作すると思うが、それはNAを識別できない。それが意味をなさないならば。 – digit

+0

さて、私はちょうど私が間違ったことを得た。 @Sリベロ。これはうまくいった!すばらしいです。感謝万円。 – digit

答えて

0

これはあなたが探しているものですか?

mutate_at(data, Two:Four, function(i){ 
    ifelse(!is.na(i), paste0(One, "_", i), i) }) 
関連する問題