2017-03-28 20 views
1

if/elseステートメントに基づいて新しい変数を作成したいとします。私は新しい変数の計算を実行する必要がありますが、男性と女性の計算は異なります。 私は、計算を使って新しい列を得るためにmutateを使ってコードを書く方法を知っていますが、性別に基づいて条件文を作成するのは苦労しています。条件付きIf/elseステートメントと突然変異を使用する

これは単に男性と女性に計算を適用している:ここで私はこれまで持っているものである

test2 <- mutate(test, FEV1 = 443 - (30*Age) + (23*Height)) 

これは私がやりたいものです

test2 <- mutate(test, FEV1 = ifelse(Sex ==1, *equation1*, *equation2*)) 
(私はそれが正しくないことを知っています)
+0

いくつかのオプションがありますが、それは簡単です。 2つの追加の列を追加します.1つは男性の条件を保持し、もう1つは女性のための列を保持します。次のステップでは、単純なifelseに基づいて結果を保存する「最終的な」結果列を追加します。 IFELSE(性別== M、列_男性、列_女性) – OB83

答えて

0

私は何が問題なのか分かりませんが、あなたはほとんどそこにいます。方法:

library("dplyr")  
df <- data.frame(sex = c("M", "F", "M", "F")) 
df$test2 <- mutate(df, var = ifelse(sex == "M", runif(1), 2)) 

mutateを使用せずに直接行うこともできます。

df$test3 <- ifelse(df$sex == "M", runif(1), 2) 
関連する問題