کتابخانه های R یک مجموعه از توابع R هستند که با داده های نمونه و کد مطابقت دارند.
کتابخانه dplyr جهت کار با دیتا فریم ها در زبان برنامه نویسی R ایجاد شده است. در واقع در این کتابخانه می توان با استفاده از یک سری توابع داده ها را دستکاری کرد و کنترل داده ها را آسانتر نمود.
مثال: دیتا فریم مروبط به اطلاعات نمرات دانشجویان را می سازیم.
students.df <- data.frame(
std_id = c(1:10),
std_fname = c("Ali", "Reza", "Milad", "sara", "Hesam", "Hamid", "zahra", "Zeynab", "Arash", "Milad"),
std_lname = c("Rezaei", "Hoseini", "Niazy", "Ahmadi", "Gholami", "Mohammadi", "Abbasi", "Hasani", "Rhbari", "Shirazi"),
std_grade = c(12,18,15,14,20,19,13,17,11,10), #نمره
std_semester = c(4,8,5,6,7,2,1,4,6,1) #ترم
)
print(students.df)
#Output
std_id std_fname std_lname std_grade std_semester
1 1 Ali Rezaei 12 4
2 2 Reza Hoseini 18 8
3 3 Milad Niazy 15 5
4 4 sara Ahmadi 14 6
5 5 Hesam Gholami 20 7
6 6 Hamid Mohammadi 19 2
7 7 zahra Abbasi 13 1
8 8 Zeynab Hasani 17 4
9 9 Arash Rhbari 11 6
10 10 Milad Shirazi 10 1
کتابخانه dplyr رو ابتدا نصب و سپس فراخوانی کنید
installed.packages("dplyr")
library("dplyr")
تابع ()names
اسم ستون های دیتا فریم را برای ما می آورد.
names(students.df)
[1] "std_id" "std_fname" "std_lname" "std_grade" "std_semester"
تابع ()select
با استفاده از این تابع می توانیم متغیرهای موجود در دیتا فریم را انتخاب کنیم.
ابتدا اسم دیتا فریم, بعدش اسم ستون هایی که میخواهیم فرا بخوانیم.
select(df, A, B ,C)`: Select the variables A, B and C from df dataset.
select(df, A:C)`: Select all variables from A to C from df dataset.
select(df, -C)`: Exclude C from the dataset from df dataset.
select(students.df,std_fname, std_lname, std_grade) #1
select(students.df, std_id : std_grade) #2
select(students.df, -(std_lname : std_semester) #3قبل پارانتز منها داره
#1
std_fname std_lname std_grade
1 Ali Rezaei 12
2 Reza Hoseini 18
3 Milad Niazy 15
4 sara Ahmadi 14
5 Hesam Gholami 20
6 Hamid Mohammadi 19
7 zahra Abbasi 13
8 Zeynab Hasani 17
9 Arash Rhbari 11
10 Milad Shirazi 10
#2
std_id std_fname std_lname std_grade
1 1 Ali Rezaei 12
2 2 Reza Hoseini 18
3 3 Milad Niazy 15
4 4 sara Ahmadi 14
5 5 Hesam Gholami 20
6 6 Hamid Mohammadi 19
7 7 zahra Abbasi 13
8 8 Zeynab Hasani 17
9 9 Arash Rhbari 11
10 10 Milad Shirazi 10
#3
std_id std_fname
1 1 Ali
2 2 Reza
3 3 Milad
4 4 sara
5 5 Hesam
6 6 Hamid
7 7 zahra
8 8 Zeynab
9 9 Arash
10 10 Milad
تابع ()filter
با این تابع سطرهای مختلف یک دیتا فریم رو ما میتونیم شرط هایی بهش بدیم و این شرط ها رو اعمال کنیم.
ابتدا اسم دیتا فریم, بعدش شرط ها
filter(df, condition)
arguments:
- df: dataset used to filter the data
- condition: Condition used to filter the data
filter(students.df, std_grade > 17) #1
filter(students.df, std_grade > 17 & std_semester == 8) #2
output
#1
std_id std_fname std_lname std_grade std_semester
1 2 Reza Hoseini 18 8
2 5 Hesam Gholami 20 7
3 6 Hamid Mohammadi 19 2
#2
std_id std_fname std_lname std_grade std_semester
1 2 Reza Hoseini 18 8
تابع ()arrange
دیتا فریم ما رو براساس ستون مشخص نشان میدهد. مثلا ما میخواهیم دیتا فریم رو براساس نمرات دانشجویان مرتب کنیم. از کمترین نمره تا بیشترین نمره.
ابتدا اسم دیتا فریم, بعدش اسم ستونی که میخواهیم مرتب سازی براساس اون انجام بشه
arrange(A): Ascending sort of variable A
arrange(A, B): Ascending sort of variable A and B
arrange(desc(A), B): Descending sort of variable A and ascending sort of B
> arrange(students.df, std_grade) #1
> arrange(students.df, desc(std_grade)) #2 از بالا به پایین
#1
std_id std_fname std_lname std_grade std_semester
1 10 Milad Shirazi 10 1
2 9 Arash Rhbari 11 6
3 1 Ali Rezaei 12 4
4 7 zahra Abbasi 13 1
5 4 sara Ahmadi 14 6
6 3 Milad Niazy 15 5
7 8 Zeynab Hasani 17 4
8 2 Reza Hoseini 18 8
9 6 Hamid Mohammadi 19 2
10 5 Hesam Gholami 20 7
#2
std_id std_fname std_lname std_grade std_semester
1 5 Hesam Gholami 20 7
2 6 Hamid Mohammadi 19 2
3 2 Reza Hoseini 18 8
4 8 Zeynab Hasani 17 4
5 3 Milad Niazy 15 5
6 4 sara Ahmadi 14 6
7 7 zahra Abbasi 13 1
8 1 Ali Rezaei 12 4
9 9 Arash Rhbari 11 6
10 10 Milad Shirazi 10 1
>
>
تابع ()rename
نام ستون های دیتافریم خود رو میتونیم تغییر بدیم
ابتدا اسم دیتا فریم, بعدش اسم ستونی که میخواهیم تغییر بدیم
#1
rename(students.df, "test"= std_grade, "name"=std_fname)
#1
std_id name std_lname test std_semester
1 1 Ali Rezaei 12 4
2 2 Reza Hoseini 18 8
3 3 Milad Niazy 15 5
4 4 sara Ahmadi 14 6
5 5 Hesam Gholami 20 7
6 6 Hamid Mohammadi 19 2
7 7 zahra Abbasi 13 1
8 8 Zeynab Hasani 17 4
9 9 Arash Rhbari 11 6
10 10 Milad Shirazi 10 1
>
تابع ()mutate
زمانی که بخواهیم ستون جدیدی به دیتافریم اضافه کنیم
ابتدا اسم دیتا فریم, بعدش اسم ستونی که میخواهیم ایجاد کنیم
#1
mutate(students.df, std_city = "Tehran")
#1
std_id std_fname std_lname std_grade std_semester std_city
1 1 Ali Rezaei 12 4 Tehran
2 2 Reza Hoseini 18 8 Tehran
3 3 Milad Niazy 15 5 Tehran
4 4 sara Ahmadi 14 6 Tehran
5 5 Hesam Gholami 20 7 Tehran
6 6 Hamid Mohammadi 19 2 Tehran
7 7 zahra Abbasi 13 1 Tehran
8 8 Zeynab Hasani 17 4 Tehran
9 9 Arash Rhbari 11 6 Tehran
10 10 Milad Shirazi 10 1 Tehran
>
تابع ()rows_insert
زمانی که بخواهیم سطر جدیدی به دیتافریم اضافه کنیم
ابتدا اسم دیتا فریم, بعدش اسم سطری که میخواهیم ایجاد کنیم
#1
rows_insert(students.df, tibble(std_id = 11, std_fname = "sevda", std_lname = "Gol", std_grade = 20, std_semester = 2))
#1
std_id std_fname std_lname std_grade std_semester
1 1 Ali Rezaei 12 4
2 2 Reza Hoseini 18 8
3 3 Milad Niazy 15 5
4 4 sara Ahmadi 14 6
5 5 Hesam Gholami 20 7
6 6 Hamid Mohammadi 19 2
7 7 zahra Abbasi 13 1
8 8 Zeynab Hasani 17 4
9 9 Arash Rhbari 11 6
10 10 Milad Shirazi 10 1
11 11 sevda Gol 20 2
>
تابع ()summarise
اطلاعات کلی از دیتافریم به ما میده
ابتدا اسم دیتا فریم, بعدش اسم ستونی که میخواهیم خلاصه آماری ازش بگیریم
#1
summarise(students.df, grademean = mean(std_grade), gradesum = sum(std_grade))
#1
grademean gradesum
1 14.9 149
فرض کنید دستوراتی را باید اجرا کنید که خروجی یکی به عنوان ورودی دیگری باشد و به شکل سلسله مراتبی ورودیها به خروجی دستورات بعدی تبدیل شوند.
با استفاده از عملگر خاصی که به صورت «%<%» نمایش داده میشود، این کار صورت میگیرد.
New_df <- df %>%
step 1 %>%
step 2 %>%
...
arguments
- New_df: Name of the new data frame
- df: Data frame used to compute the step
- step: Instruction for each step
- Note: The last instruction does not need the pipe operator `%`, you don't have instructions to pipe anymore
Note: Create a new variable is optional. If not included, the output will be displayed in the console.
منابع::
https://www.aparat.com/v/oiBpl
https://b.fdrs.ir/7sx
دوره های آموزشی ما برای کنکور ارشد و دکتری رشته های روانشناسی، مشاوره، علوم تربیتی، پرستاری, مدیریت آموزشی و علوم شناختی کاربرد دارد.