This is probably a very simple question but I can't find an answer anywhere. I have a basic dataframe:
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
This works:
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
But this doesn't:
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
As you can see, all of the rows take on the value that the first row receives. I thought you could do vector operations and set the values for the entire column at once with ifelse
but what am I doing wrong here. Even complex / nested if/else if/else
statements do the same thing.
Thanks!