Hi all I'm new to R and would love your help. I have a data frame where I would like to recode some values. Here's an example data frame:
df <- data.frame(age = sample(100, size = 6),
gender = c("boy", "girl"))
print(x)
age gender
1 58 boy
2 41 girl
3 31 boy
4 96 girl
5 93 boy
6 60 girl
Let's say I want to recode boy to man and girl to woman in a new column called new.gender . I tried using the ifelse function (to no avail):
df$new.gender <- NA
ifelse(x$gender == "boy", x$new.gender <- "man", x$new.gender <- "woman")
print(x)
age gender new.gender
1 96 boy woman
2 46 girl woman
3 68 boy woman
4 6 girl woman
5 26 boy woman
6 55 girl woman
After some thinking, I changed the syntax a bit and got it to work:
x$new.gender <- NA
x$new.gender <- ifelse(x$gender == "boy", "man", "woman")
print(x)
age gender new.gender
1 96 boy man
2 46 girl woman
3 68 boy man
4 6 girl woman
5 26 boy man
6 55 girl woman
Can someone help me understand why my first attempt resulted in all values changing to woman, while my second attempt worked? Thanks!