これはおそらく非常に単純な質問ですが、どこにも答えが見つかりません。私は基本的なデータフレームを持っています:
somedf <- data.frame(ageGroup = c("Under10", "Over10", "Over50", "Over100"),
favColor = c("red", "pink", "purple", "blue"))
ageGroup favColor
1 Under10 red
2 Over10 pink
3 Over50 purple
4 Over100 blue
これは機能します:
somedf$ageGroup2 <- ifelse(somedf$ageGroup == "Under10", 1, 2 )
ageGroup favColor ageGroup2
1 Under10 red 1
2 Over10 pink 2
3 Over50 purple 2
4 Over100 blue 2
しかし、これはしません:
somedf$ageGroup3 <- ifelse(somedf$ageGroup == "Under10" ||
somedf$ageGroup == "Over10" , 3, 4 )
ageGroup favColor ageGroup2 ageGroup3
1 Under10 red 1 3
2 Over10 pink 2 3
3 Over50 purple 2 3
4 Over100 blue 2 3
ご覧のとおり、すべての行が最初の行が受け取った値を取ります。ベクトル演算を実行して、列全体の値を一度に設定できると思っていましたifelseが、ここで何が間違っているのでしょうか。複雑な/ネストされたif/else if/elseステートメントでさえ、同じことを行います。
ありがとう!