در این آموزش نحوه کار با List در R را خواهید آموخت:
- مدرس: افشین متولی
- سایت: آر استودیو
- سطح آموزش: مبتدی
فهرست یا همان لیست (List) یک ساختار داده ای است که ترکیبی از انواع داده در آن حضور دارد.
- بردار تجزیه ناپذیر: برداری است که در آن همه عناصر از یک جنس باشند.
- لیست: برداری است که عناصر آن می توانند انواع مختلفی داشته باشند.
برای این که مطمئن شوید یک شیء لیست است یا نه، از دستور
typeof()
استفاده کنید.
نحوه ساختن لیست در R
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# r-studio.ir x <- list("a" = 2.5, "b" = TRUE, "c" = 1:3) x $a [1] 2.5 $b [1] TRUE $c [1] 1 2 3 typeof(x) # اطمینان از نوع لیست بودن یا نبودن [1] "list" length(x) # تعداد مولفه های لیست [1] 3 |
همانطور که مشاهده می کنید x متشکل از سه نوع داده (دابل، منطقی و عدد صحیح) می باشد. برای این که بدانیم این داده ها از چه نوعی هستند از دستور زیر استفاده می کنیم:
1 2 3 4 5 |
str(x) List of 3 $ a: num 2.5 $ b: logi TRUE $ c: int [1:3] 1 2 3 |
روش دوم برای ساختن لیست:
در این روش اسم (تگ ها) را برای عناصر لیست معرفی نمی کنیم. البته نرم افزار R به صورت پیش فرض بدون نام لیست می سازد. به مثال زیر توجه کنید:
1 2 3 4 5 6 7 8 9 |
x <- list(2.5,TRUE,1:3) x [[1]] [1] 2.5 [[2]] [1] TRUE [[3]] [1] 1 2 3 ##در این جا تگ ها به صورت اعداد ساده نشان داده شده اند |
نحوه دسترسی به مولفه ها در یک لیست:
دسترسی به مولفه های درون یک لیست مشابه با دسترسی به مولفه های بردار است و با استفاده از بردارهای عدد صحیح، منطقی یا کاراکتری می توانید به این مولفه ها دسترسی پیدا کنید. لیست زیر را در نظر بگیرید:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# r-studio.ir x <- list("name"="John", "age"=19, "Speaks"=c("English","French")) x $name [1] "John" $age [1] 19 $speaks [1] "English" "French" # دسترسی به مولفه های لیست x[c(1:2)] # اندیس گذاری با استفاده از بردار عدد صحیح $name [1] "John" $age [1] 19 x[-2] # مستثنی کردن مولفه دوم با استفاده از عدد صحیح منفی $name [1] "John" $speaks [1] "English" "French" x[c(T,F,F)] # اندیس گذاری با استفاده از بردار منطقی $name [1] "John" x[c("age","speaks")] # اندیس گذاری با استفاده از بردار کاراکتری $age [1] 19 $speaks [1] "English" "French" |
توجه: استفاده از یک براکت [ همانطور که در بالا دیدیم یک زیرلیست از لیست اصلی را به ما می دهد نه محتوای درون مولفه را. برای دسترسی به این محتوای درون مولفه ها باید از [[ استفاده کنید.
1 2 3 4 5 6 7 8 9 |
x["age"] $age [1] 19 typeof(x["age"]) # یک براکت زیرلیست را به ما می دهد [1] "list" x[["age"]] # دو براکت محتوای مولفه ها را به ما می دهد [1] 19 typeof(x[["age"]]) [1] "double" |
یک روش دیگر نیز به جای استفاده از دو براکت وجود دارد. این روش استفاده از عملگر $ است. عملگر دلار این مزیت را دارد که انطباق جزئی را بر روی اسامی درون لیست انجام می دهد. به مثال دقت کنید:
1 2 3 4 5 6 7 8 9 10 11 |
x$name # x[["name"]] مانند [1] "John" x$a # x$ag or x$age انطباق جزئی همانند [1] 19 x[["a"]] # براکت ها نمی توانند انطباق جزئی انجام دهند NULL # اندیس گذاری به صورت برگشتی نیز قابل انجام است x$speaks[1] [1] "English" x[["speaks"]][2] [1] "French" |
ویرایش کردن یک لیست در R
اصلاح کردن یک لیست کار ساده است. به مثال توجه کنید:
1 2 3 4 5 6 7 8 |
x[["name"]] <- "Clair" # تغییر یکی از مولفه ها x $age [1] 19 $speaks [1] "English" "French" $name [1] "Clair" |
نحوه اضافه کردن مولفه ها به یک لیست:
1 2 3 4 5 6 7 8 9 10 11 |
# r-studio.ir x[["married"]] <- FALSE # این مولفه را اضافه می کنیم x $age [1] 19 $speaks [1] "English" "French" $name [1] "Clair" $married [1] FALSE |
نحوه حذف کردن مولفه ها از یک لیست:
1 2 3 4 5 6 7 8 9 10 11 |
x[["age"]] <- NULL # مولفه سن را حذف می کنیم str(x) List of 3 $ speaks : chr [1:2] "English" "French" $ name : chr "Clair" $ married: logi FALSE x$married <- NULL # مولفه وضعیت تاهل را حذف می کنیم str(x) List of 2 $ speaks: chr [1:2] "English" "French" $ name : chr "Clair" |
برای مشاهده مثال های بیشتر در ارتباط با آموزش کار با List در R می توانید از سایت Rseek استفاده کنید.
لطفاً دیدگاه خود را برای ما ارسال کنید.
حتماً بخوانید:
- آموزش رسم کردن نمودار میله ای در R
- آموزش ذخیره کردن نمودارها در R
- آموزش رسم چند گراف در یک قاب در R
- آموزش رسم نمودار توابع در R
- آموزش رسم نمودار جعبه ای در R
- آموزش رسم نمودار دایره ای در R
- آموزش رسم هیستوگرام در R
- آموزش کار با حلقه for در R
- آموزش کار با Dataframe در R
- آموزش کار با بردارها در R
- آموزش کار با ماتریس ها در R