فاکتورها در زبان برنامه نویسی R
فاکتورها؛ نوعی شیء داده در زبان برنامه نویسی R هستند که برای طبقه بندی داده ها و ذخیره آنها به صورت سطح، استفاده می شوند. این فاکتورها می توانند هم رشته و هم اعداد صحیح را ذخیره نمایند. آنها برای ستون هایی مفید هستند که تعداد محدودی از مقادیر خاص دارند. مانند “Male” (مذکر)، “Female” (مؤنث)، True ، False و غیره. آنها در تجزیه و تحلیل داده ها برای مدلسازی آماری مفید هستند.
مثال
# Create a vector as input.
data <- c(“East”,”West”,”East”,”North”,”North”,”East”,”West”,”West”,”West”,”East”,”North”)
print(data)
print(is.factor(data))
# Apply the factor function.
factor_data <- factor(data)
print(factor_data)
print(is.factor(factor_data))
زمانی که کد بالا را اجرا کنیم؛ نتیجه زیر به دست می آید:
[۱] “East” “West” “East” “North” “North” “East” “West” “West” “West” “East” “North”
[۱] FALSE
[۱] East West East North North East West West West East North
Levels: East North West
[۱] TRUE
فاکتورها در چارچوب داده ها
در ایجاد هر نوع چارچوب داده با یک ستون از داده های متنی، R با ستون متنی به عنوان یک داده مطلق رفتار می کند و فاکتورها را روی آن ایجاد می کند:
# Create the vectors for data frame.
height <- c(132,151,162,139,166,147,122)
weight <- c(48,49,66,53,67,52,40)
gender <- c(“male”,”male”,”female”,”female”,”male”,”female”,”male”)
# Create the data frame.
input_data <- data.frame(height,weight,gender)
print(input_data)
# Test if the gender column is a factor.
print(is.factor(input_data$gender))
# Print the gender column so see the levels.
print(input_data$gender)
زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر به دست می آید:
height weight gender
۱ ۱۳۲ ۴۸ male
۲ ۱۵۱ ۴۹ male
۳ ۱۶۲ ۶۶ female
۴ ۱۳۹ ۵۳ female
۵ ۱۶۶ ۶۷ male
۶ ۱۴۷ ۵۲ female
۷ ۱۲۲ ۴۰ male
[۱] TRUE
[۱] male male female female male female male
Levels: female male
تغییر مرتبه ی سطح ها
مرتبه سطح ها در یک فاکتور را می توان با اعمال دوباره ی تابع فاکتور با مرتبه ی جدیدی از سطوح؛ تغییر داد.
data <- c(“East”,”West”,”East”,”North”,”North”,”East”,”West”,
“West”,”West”,”East”,”North”)
# Create the factors
factor_data <- factor(data)
print(factor_data)
# Apply the factor function with required order of the level.
new_order_data <- factor(factor_data,levels = c(“East”,”West”,”North”))
print(new_order_data)
data <- c(“East”,”West”,”East”,”North”,”North”,”East”,”West”,
“West”,”West”,”East”,”North”)
# Create the factors
factor_data <- factor(data)
print(factor_data)
# Apply the factor function with required order of the level.
new_order_data <- factor(factor_data,levels = c(“East”,”West”,”North”))
print(new_order_data)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید:
[۱] East West East North North East West West West East North
Levels: East North West
[۱] East West East North North East West West West East North
Levels: East West North
تولید سطح ها در یک فاکتور
ما می توانیم سطوح فاکتور را با استفاده از تابع ()gl ایجاد کنیم. این تابع دو عدد صحیح را به عنوان ورودی اتخاذ می کند که نشان دهنده تعداد سطح ها و تعداد تکرار هر سطح می باشد.
سینتکس
gl(n, k, labels)
پارامترهایی که در کد بالا به کار رفته اند عبارتند از:
- n یک عدد صحیح است که تعداد سطوح را نشان می دهد.
- k یک عدد صحیح است که تعداد تکرار ها را نشان می دهد.
- lables برداری از لیبل ها برای سطوح فاکتور حاصل می باشد.
مثال
v <- gl(3, 4, labels = c(“Tampa”, “Seattle”,”Boston”))
print(v)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر را به دست می آوریم:
Tampa Tampa Tampa Tampa Seattle Seattle Seattle Seattle Boston
[۱۰] Boston Boston Boston
Levels: Tampa Seattle Boston