2017-06-26 9 views
2

私はRでプログラミングするのがとても新しいです。私はまだたくさんのことを学んでいますので、私の質問はあなたのより高度なプログラマーにとってちょっとばかげているかもしれません。Rのifelse()関数を使って他の要素を変更している間、特定の要素を保持する方法はありますか?

そのための
irelevant 
irelevant 
2 
6 
very important 
5 
very important 
irelevant 
4 

私はifelseを使用したい:私はR.でifelse()機能

私のコラムに問題が発生した瞬間に は、私はこのようなルックスに問題がある(Aそれを呼び出すことができます) "非常に重要"を7に、 "irelevant"を1に、他の要因を維持する機能。だから私はこれを試しました。

Data$B <- ifelse(Data$A == "irelevant", 1, 
         ifelse(Data$A == "very important", 7, Data$A)) 

残念ながらそれdidn't仕事と奇妙な、それはこのように私のコラムを返しました:

1 
1 
3 
7 
7 
6 
7 
1 
5 

機能が正しく「irelevant」と「非常に重要」と変換が、他のすべての要素に1を追加しました。どのように私はそれを避けることができますか、私の機能を改善する?あなたが私を助けてくれたら本当にうれしいです。

答えて

0

だけifelseを実行する前characterにすべてを変換します。

gg = c("irelevant", "irelevant", 2, 6, "very important", 5, 
     "very important", "irelevant", 4) 
gg = as.data.frame(gg) 
gg$gg = as.character(gg$gg) 
gg$bb = ifelse(gg$gg == "irelevant", 1, 
       ifelse(gg$gg == "very important", 7, gg$gg)) 
gg 

> gg 
       gg bb 
1  irelevant 1 
2  irelevant 1 
3    2 2 
4    6 6 
5 very important 7 
6    5 5 
7 very important 7 
8  irelevant 1 
9    4 4 
+1

はどうもありがとうございました! 「gg $ gg = as.character(gg $ gg)」の部分は私の間違いでした。今それは正常に動作します。ごきげんよう。 –

+0

あなたも。お力になれて、嬉しいです :) – AK88

関連する問題