لیست در زبان R اشیائی هستند که میتوانند عناصری از انواع مختلف را در خود نگه دارند؛ مانند اعداد، رشتهها (strings)، بردارها (vectors) و حتی یک لیست دیگر. یک لیست میتواند شامل ماتریس (matrix) یا یک تابع نیز باشد. برای ساختن لیست از تابع list()
استفاده میشود.
ایجاد یک لیست در زبان R
در مثال زیر، یک لیست شامل رشتهها، اعداد، بردار و یک مقدار منطقی (logical) ساخته میشود:
1 2 3 |
# ایجاد یک لیست شامل رشتهها، اعداد، بردار و مقادیر منطقی list_data <- list("Red", "Green", c(21,32,11), TRUE, 51.23, 119.1) print(list_data) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[[1]] [1] "Red" [[2]] [1] "Green" [[3]] [1] 21 32 11 [[4]] [1] TRUE [[5]] [1] 51.23 [[6]] [1] 119.1 |
نامگذاری عناصر لیست
میتوان برای عناصر یک لیست نام تعیین کرد و سپس از طریق این نامها به آنها دسترسی داشت.
1 2 3 4 5 6 7 8 9 |
# ایجاد یک لیست شامل یک بردار، یک ماتریس و یک لیست دیگر list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow = 2), list("green",12.3)) # نامگذاری عناصر لیست names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list") # نمایش لیست print(list_data) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$`1st_Quarter` [1] "Jan" "Feb" "Mar" $A_Matrix [,1] [,2] [,3] [1,] 3 5 -2 [2,] 9 1 8 $A_Inner_list $A_Inner_list[[1]] [1] "green" $A_Inner_list[[2]] [1] 12.3 |
دسترسی به عناصر لیست در زبان R
عناصر یک لیست را میتوان با استفاده از اندیس آنها (index) فراخوانی کرد. در لیستهای نامگذاریشده، میتوان علاوه بر اندیس، از نام عنصر نیز استفاده کرد.
در ادامه از همان لیست مثال قبلی استفاده میکنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# ایجاد یک لیست شامل یک بردار، یک ماتریس و یک لیست list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow = 2), list("green",12.3)) # نامگذاری عناصر لیست names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list") # دسترسی به اولین عنصر لیست print(list_data[1]) # دسترسی به عنصر سوم. چون خودش یک لیست است، همه عناصر آن نمایش داده میشوند. print(list_data[3]) # دسترسی به عنصر با استفاده از نام print(list_data$A_Matrix) |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$`1st_Quarter` [1] "Jan" "Feb" "Mar" $A_Inner_list $A_Inner_list[[1]] [1] "green" $A_Inner_list[[2]] [1] 12.3 [,1] [,2] [,3] [1,] 3 5 -2 [2,] 9 1 8 |
دستکاری عناصر لیست
میتوان عناصر یک لیست را اضافه، حذف یا بهروزرسانی کرد. اضافهکردن و حذفکردن فقط در انتهای لیست امکانپذیر است، اما بهروزرسانی در هر موقعیت انجام میشود.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# ایجاد یک لیست شامل یک بردار، یک ماتریس و یک لیست list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow = 2), list("green",12.3)) # نامگذاری عناصر لیست names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list") # افزودن یک عنصر در انتهای لیست list_data[4] <- "New element" print(list_data[4]) # حذف آخرین عنصر list_data[4] <- NULL # چاپ عنصر چهارم print(list_data[4]) # بهروزرسانی عنصر سوم list_data[3] <- "updated element" print(list_data[3]) |
1 2 3 4 5 6 7 8 |
[[1]] [1] "New element" $<NA> NULL $`A Inner list` [1] "updated element" |
ادغام لیست ها در زبان R
میتوان چندین لیست را در یک لیست ادغام کرد. برای این کار، همه لیستها را داخل یک تابع list()
قرار میدهیم یا با عملگر c()
ترکیب میکنیم.
1 2 3 4 5 6 7 8 9 |
# ایجاد دو لیست list1 <- list(1,2,3) list2 <- list("Sun","Mon","Tue") # ادغام دو لیست merged.list <- c(list1,list2) # چاپ لیست ادغامشده print(merged.list) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
[[1]] [1] 1 [[2]] [1] 2 [[3]] [1] 3 [[4]] [1] "Sun" [[5]] [1] "Mon" [[6]] [1] "Tue" |
تبدیل لیست به بردار (Vector)
یک لیست را میتوان به بردار تبدیل کرد تا بتوان عملیاتهای عددی و دستکاریهای بعدی را روی عناصر آن انجام داد. تمام عملیات ریاضی روی بردارها پس از تبدیل قابل استفاده خواهند بود. برای این تبدیل از تابع unlist()
استفاده میکنیم. این تابع یک لیست را گرفته و آن را به بردار تبدیل میکند.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# ایجاد لیستها list1 <- list(1:5) print(list1) list2 <- list(10:14) print(list2) # تبدیل لیستها به بردار v1 <- unlist(list1) v2 <- unlist(list2) print(v1) print(v2) # جمعکردن دو بردار result <- v1 + v2 print(result) |
1 2 3 4 5 6 7 8 9 |
[[1]] [1] 1 2 3 4 5 [[1]] [1] 10 11 12 13 14 [1] 1 2 3 4 5 [1] 10 11 12 13 14 [1] 11 13 15 17 19 |
راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.
- انتشار: ۱۶ شهریور ۱۴۰۴
دسته بندی موضوعات
- آموزش ارز دیجیتال
- آموزش برنامه نویسی
- آموزش متنی برنامه نویسی
- اطلاعیه و سایر مطالب
- پروژه برنامه نویسی
- دوره های تخصصی برنامه نویسی
- رپورتاژ
- فیلم های آموزشی
- ++C
- ADO.NET
- Adobe Flash
- Ajax
- AngularJS
- apache
- ARM
- Asp.Net
- ASP.NET MVC
- AVR
- Bootstrap
- CCNA
- CCNP
- CMD
- CSS
- Dreameaver
- EntityFramework
- HTML
- IOS
- jquery
- Linq
- Mysql
- Oracle
- PHP
- PHPMyAdmin
- Rational Rose
- silver light
- SQL Server
- Stimulsoft Reports
- Telerik
- UML
- VB.NET&VB6
- WPF
- Xml
- آموزش های پروژه محور
- اتوکد
- الگوریتم تقریبی
- امنیت
- اندروید
- اندروید استودیو
- بک ترک
- بیسیک فور اندروید
- پایتون
- جاوا
- جاوا اسکریپت
- جوملا
- دلفی
- دوره آموزش Go
- دوره های رایگان پیشنهادی
- زامارین
- سئو
- ساخت CMS
- سی شارپ
- شبکه و مجازی سازی
- طراحی الگوریتم
- طراحی بازی
- طراحی وب
- فتوشاپ
- فریم ورک codeigniter
- فلاتر
- کانستراکت
- کریستال ریپورت
- لاراول
- معماری کامپیوتر
- مهندسی اینترنت
- هوش مصنوعی
- یونیتی
- کتاب های آموزشی
- Android
- ASP.NET
- AVR
- LINQ
- php
- Workflow
- اچ تی ام ال
- بانک اطلاعاتی
- برنامه نویسی سوکت
- برنامه نویسی موبایل
- پاسکال
- پایان نامه
- پایتون
- جاوا
- جاوا اسکریپت
- جی کوئری
- داده کاوی
- دلفی
- رباتیک
- سئو
- سایر کتاب ها
- سخت افزار
- سی اس اس
- سی پلاس پلاس
- سی شارپ
- طراحی الگوریتم
- فتوشاپ
- مقاله
- مهندسی نرم افزار
- هک و امنیت
- هوش مصنوعی
- ویژوال بیسیک
- نرم افزار و ابزار برنامه نویسی
- وردپرس