چطور مقادیر یک ستون را در R عوض کنیم؟

در هنگام کار با داده‌ها بعضی مواقع لازم است مقادیر یک ستون را به مقداری دیگر تغییر دهیم. این شرایط معمولا هنگام پاکسازی داده‌ها بوجود می‌آید. برای نمونه به دیتافریم زیر نگاه کنید:

				
					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
				
			

دیدگاه‌ها

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors