2017-02-15 17 views
2

次の情報を持つRにデータフレーム(data.frame(test))があります。条件文に基づいて、Rの新しい列に他の列を設定します。

Columns1 | Column2 | Column3 
1 | 11 | 33 
3 | 34 | 56 
4 | 24 | 23 
5 | 74 | 64 
3 | 45 | 52 
2 | 54 | 53 
1 | 76 | 92 

私は列の条件文に基づいて、列2および3にデータが移入された新しい列を作成しようとしています。1.

私は適切に記述する方法を見つけ出すように見えることはできません

条件付き。

if (test$column1 == 3 || test$column1 == 2 || test$column1 == 1) { 
test$Newcolumn = test$column1 
} else { 
    test$NewColumn = test$column2 
} 

最終的な結果は次のようになります。dplyr

Columns1 | Column2 | Column3 | NewColumn 
1 | 11 | 33 | 11 
3 | 34 | 56 | 33 
4 | 24 | 23 | 23 
5 | 74 | 64 | 64 
3 | 45 | 52 | 45 
2 | 54 | 53 | 54 
1 | 76 | 92 | 76 
+0

単純な 'ifelse'のようなifelse(テスト$ column1%in%c(1,2,3)、テスト$ column2、テスト$ column3)' –

+1

これは、ありがとう、それでした。 –

+0

私はあなたを助けてくれてうれしい –

答えて

0

" - ifelseのような単純なifelse(%c(1,2,3)のテスト$ column1%、test $ column2、test $ column3)" by-joel.wilsonが機能しました。

0

を、mydfがあなたのデータフレームであると仮定すると:

mydf %>% mutate(newColumn = ifelse(column1 %in% 1:3, column2, column3)) -> res 

私はあなたの質問にタイプミスがあると仮定し、あなたが意図しました条件が満たされた場合は、column2の値をnewColumnに割り当てます。

+0

ええ、それはただのタイプミスです。コードを実行すると、新しい列に列1または列2のみが設定されます。 –

関連する問題