چطور در R زیرمجموعه‌ای از داده درست کنیم؟

اغلب، هنگامی که با یک مجموعه داده بزرگ کار می کنید، فقط به بخش کوچکی از آن برای تجزیه و تحلیل خاص خود علاقه مند خواهید بود. مثلا اگر با داده‌های پزشکی سر و کار دارید مایلید تنها داده‌های مربوط به بیمارانی که مراحل درمانی خاصی را گذرانده‌اند از داده‌های اصلی جدا کنید و روی آن ها کار کنید.

چگونه می‌توانید همه متغیرها و مشاهدات اضافی را مرتب کنید و فقط آن‌هایی را که نیاز دارید استخراج کنید؟  R راه های مختلفی برای انجام این کار دارد. فرآیندی که آن را «زیرمجموعه‌سازی» می‌نامد.

برای اینکه بتوانیم بهتر روش‌های زیرمجموعه‌سازی را درک کنیم بهتر است آن‌ها را در یک مثال واقعی دنبال کنیم. با استفاده از دستور زیر مجموعه داده‌های مربوط به کشتی تایتانیک را وارد R می‌کنیم  و با پنج روش مختلف زیرمجموعه‌هایی از داده اصلی را می‌سازیم.

				
					titanic = read_csv("https://d-learn.ir/wp-content/uploads/2022/04/titanic.csv")[,-1]
head(titanic)
				
			
				
					# A tibble: 6 x 12
  PassengerId Survived Pclass Name                               Sex     Age SibSp Parch Ticket        Fare Cabin Embarked
        <dbl>    <dbl>  <dbl> <chr>                              <chr> <dbl> <dbl> <dbl> <chr>        <dbl> <chr> <chr>   
1           1        0      3 Braund, Mr. Owen Harris            male     22     1     0 A/5 21171     7.25 NA    S       
2           2        1      1 Cumings, Mrs. John Bradley (Flore~ fema~    38     1     0 PC 17599     71.3  C85   C       
3           3        1      3 Heikkinen, Miss. Laina             fema~    26     0     0 STON/O2. 31~  7.92 NA    S       
4           4        1      1 Futrelle, Mrs. Jacques Heath (Lil~ fema~    35     1     0 113803       53.1  C123  S       
5           5        0      3 Allen, Mr. William Henry           male     35     0     0 373450        8.05 NA    S       
6           6        0      3 Moran, Mr. James                   male     NA     0     0 330877        8.46 NA    Q  
				
			

روش اول: انتخاب ستون‌ها با استفاده از دستورات پایه

فرض کنید می‌خواهیم دیتافریمی داشته باشیم که تنها شناسه، وضعیت زنده ماندن و جنسیت مسافران را در خود نگه دارد. این داده‌ها در ستون‌های 1، 2 و 5 قرار دارند. کافی است دستور زیر را اجرا کنید و نتیجه را ببینید.

				
					titanic[,c(1,2,5)]
				
			

روش دوم: حذف ستون‌ها

می‌توانید برای رسیدن به نتیجه مشابه در مثال مرحله قبل بجای آن‌که ستون‌های مورد نظر خود را انتخاب کنید، ستون‌هایی که مد نظر شما نیستند را حذف کنید.

				
					titanic[,-c(3:4,6:12)]
				
			

روش سوم: استفاده از تابع which

می‌خواهیم برای مثال بالا در مجموعه داده‌های تایتانیک تنها مسافران زن را مورد بررسی قرار دهیم. برای این کار لازم است مجموعه داده‌ای داشته باشیم که تنها مسافران زن را در بر بگیرد. امکانات تابع which  به شما اجازه این کار را می‌دهد. همچنین با استفاده از عملگر %in% میتوانید نام ستون‌ها را انتخاب کنید.

				
					titanic[which(titanic$Sex == "female"), names(titanic) %in% c("PassengerId","Survived","Sex")]
				
			

روش چهارم: استفاده از تابع subset

برای مثال بالا می‌توانیم از تابع subset  نیز استفاده کنیم که نتیجه‌ای مشابه خواهد داشت.

				
					subset(titanic, Sex == "female" , select = c("PassengerId","Survived","Sex"))
				
			

روش پنجم: استفاده از کتابخانه dplyr

اگر با مجموعه کتابخانه‌های tidyverse  آشنا باشید، می‌توانید از دستور select و filter نیز استفاده کنید. این روش نیز به راحتی روش‌های دیگر است:

				
					select(filter(titanic, Sex == "female"),c(PassengerId,Survived,Sex))

				
			

دیدگاه‌ها

یک پاسخ

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

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

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