در هنگام کار با دادهها بعضی مواقع لازم است مقادیر یک ستون را به مقداری دیگر تغییر دهیم. این شرایط معمولا هنگام پاکسازی دادهها بوجود میآید. برای نمونه به دیتافریم زیر نگاه کنید:
df <- data.frame(
age = c(10, 12 , 14 , 13),
gender = c("zan", "mard" , "zan" , "mard")
)
df
. age gender
1 10 zan
2 12 mard
3 14 zan
4 13 mard
میخواهیم در ستون gender
دو کلمه male
و female
را جایگزین mard
و zan
کنیم.
روش اول: استفاده از دستورات پایهای در R
df$gender[df$gender == "mard"] = "male"
df$gender[df$gender == "zan"] = "female"
df
. age gender
1 10 female
2 12 male
3 14 female
4 13 male
روش دوم: استفاده از ifelse
df <- data.frame(
age = c(10, 12 , 14 , 13),
gender = c("zan", "mard" , "zan" , "mard")
)
df$gender <- ifelse(df$gender == "zan", "female", "male")
df
. age gender
1 10 female
2 12 male
3 14 female
4 13 male
روش سوم: استفاده از دستور replace
df <- data.frame(
age = c(10, 12 , 14 , 13),
gender = c("zan", "mard" , "zan" , "mard")
)
df$gender <- replace(df$gender, df$gender == "zan", "female")
df$gender <- replace(df$gender, df$gender == "mard", "male")
df
age gender
1 10 female
2 12 male
3 14 female
4 13 male
روش سوم: استفاده از کتابخانه dplyr
library(dplyr)
df <- data.frame(
age = c(10, 12 , 14 , 13),
gender = c("zan", "mard" , "zan" , "mard")
)
df <- df %>%
mutate(gender = case_when(
gender == "zan" ~ "female",
gender == "mard" ~ "male",
TRUE ~ gender
))
df
. age gender
1 10 female
2 12 male
3 14 female
4 13 male