2016-11-16 4 views
0

Rを学習するためにSASスクリプトをRに変換しようとしています。以下はSASのスクリプトです。ここで複数の論理演算子を使用してデータセットの新しい変数をコードするR

if continent=1 and (country=5 or country=10) then rate = 8 

データフレームのための私の試みはデータと呼ばれています:

data$rate[(continent==1) & (country==5 | country==10)] <- 8 

または:

data$rate[(continent==1) & country %in% c(5,10)] <-8 

残念ながら、試みが正常に結果を生成しません。結果は、大陸= 1または国= 5または国= 10のいずれかの割合8を示します。私はRで論理演算子を組み合わせるのが間違っていると思います。

誰でも問題を解決するのに役立つでしょうか?どうもありがとう!

注:私はデータを再度書き直すのが怠惰なので、上記のattach(data)を使用しました。

+1

をサンプルデータがなければ、再現することは難しいです。データ$レート[データ$大陸== 1&データ$国== 5 |データ$国== 10]] < - 8' – User7598

+0

あなたはコンマ 'data $ rate [ == 1)&(国== 5 |国== 10)、] < - 8' – csgillespie

+0

'attach(data)'は一般的には本当に悪い考えです。 –

答えて

0

あなたの問題は、データフレームdataのデータから変数を呼び出さなかったようです。これがエラーの原因になっている可能性があります。この問題を解決するには、実行してデータフレーム内の変数を指定します。

data$rate[(data$continent==1 & (data$country==5 | data$country==10))] <- 8

+0

アタッチ(データ)が上記で使用されていることを言及して申し訳ありません。 – duckduckgoes

+0

私は 'attach'を使用しません。上記のように論理文全体にかっこを入れるだけです。すなわち、 'data $ rate [(大陸== 1)&(国== 5 |国== 10))] < - 8' – User7598

+0

ありがとうございました。私はかっこを見逃した! – duckduckgoes

関連する問題