他の列の値に基づいて新しい列を作成しようとしています。R:複数の列に変更して新しい列を作成する
ここに私が取り組んでいるものに似たデータセットがあります。 私は3つの変数、Test1、Test2、Test3を持っています。 Test変数のいずれかが DF60、DF61、DF63またはDF64または0の場合は1という新しい変数を作成しようとしています。
Test1<-c("DF64", "DF63", "DF89", "DF30", "DF70")
Test2<-c("DF61", "DF25", "DF00", "DF30", "DF99")
Test3<-c("DF80", "DF63", "DF60", "DF63", "DF70")
Test<-data.frame(Test1, Test2, Test3)
は、私は現時点では文ifelse多くを持っており、複数の値を可能にしながら、複数のテスト変数を超える ループを見上げすることができ、コードを探しています。
私はmutate_atを試しましたが、それは正しい方法ではないと思います。
Test2<- Test %>%
mutate_at(vars(starts_with("Test")), funs(Test=ifelse("DF60" | "DF61" |
"DF62" | "DF63", 1, 0)))
ご協力いただきありがとうございます。
ありがとうございます!コメントの後
ありがとうございます!すべての元の変数(Test1、Test2、Test3に加えて他の変数があります)を保持する方法はありますか?同じTest1、Test2、Tes3変数に基づいて複数の変数を作成する必要がありますので、変数を変更したくないです。 – user3047435
ありがとうございます!申し訳ありませんが、この場合split(。、1 <10)は何をしますか? – user3047435
splitは引数に基づいてdfをdfのリストに分割します。次のmap_dfは、それらのdfのそれぞれに引数を適用し、それらを1つのdfにバインドします。この場合、私は異なったdfのリストを望んでいませんでしたが、ただ一つのdf(df全体)のリストだけです。それは私が常に真実であるという議論に基づいて分割した理由です。必要であれば試してみることができます。この回答は前回の私のstackoverflowに関する質問に基づいています。リンクをたどると、 ) – Dries