در این آموزش نحوه کار با بردارها در R را خواهید آموخت:
- مدرس: افشین متولی
- سایت: آر استودیو
- سطح آموزش: مبتدی
بردار یک ساختار داده ای مبنا در نرم افزار R است که در بردارنده عناصری با شکل یکسان می باشد. نوع این داده ها می تواند منطقی، عدد صحیح، ترکیبی، کاراکتری، مرکب یا خام باشند.
برای بررسی کردن نوع بردار از دستور
typeof()
استفاده می کنیم. یکی دیگر از ویژگی های مهم در یک بردار، طول آن (Length) است.
طول به معنای تعداد عناصر موجود در یک بردار است و برای مشخص شدن طول یک بردار از دستور
length()
استفاده می کنیم.
چگونه در R بردار بسازیم؟
بردارها عمدتاً با استفاده از دستور
c()
ساخته می شوند.
از آنجایی که یک بردار باید عناصری با نوع یکسان داشته باشد، این دستور سعی می کند اگر عناصر انواع مختلفی داشته باشند، به همه عناصر یک نوع نسبت دهد.
ترتیب این اجبار (نسبت دادن یک نوع به همه انواع دیگر عناصر) به ترتیب زیر است:
- logical
- Integer
- Double
- Character
به مثال زیر توجه فرمایید:
1 2 3 4 5 6 7 8 9 10 |
x <- c(1, 5, 4, 9, 0) typeof(x) [1] "double" length(x) [1] 5 x <- c(1, 5.4, TRUE, "hello") x [1] "1" "5.4" "TRUE" "hello" typeof(x) [1] "character" |
حال اگر قصد ساختن یک بردار با اعداد متوالی را دارید باید از اپراتور : به شکل زیر استفاده کنید.
مثال 1: ساختن یک بردار با استفاده از عملگر “:”
1 2 3 4 |
x <- 1:7; x [1] 1 2 3 4 5 6 7 y <- 2:-2; y [1] 2 1 0 -1 -2 |
روش دیگری برای ساختن دنباله های پیچیده تر استفاده از تابع seq() می باشد، در این تابع می توانید تعدادی از نقاط را در یک بازه با طول گام های دلخواه تعریف کنید. به مثال زیر توجه فرمایید:
1 2 3 4 5 6 |
# آر استودیو # r-studio.ir seq(1, 3, by=0.2) # در این دستور طول گام ها مشخص شده است [1] 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0 seq(1, 5, length.out=4) # در این دستور طول بردار مشخص شده است [1] 1.000000 2.333333 3.666667 5.000000 |
دسترسی به عناصر یک بردار در R:
عناصر یک بردار با استفاده از اندیس نویسی قابل دسترسی هستند. بردار مورد استفاده برای اندیس نویسی می تواند منطقی، عدد صحیح یا کاراکتری باشد.
1- استفاده از بردار عدد صحیح برای اندیس نویسی:
اندیس بردار در نرم افزار R از 1 شروع می شود، برخلاف اکثر زبان های برنامه نویسی دیگر که از 0 شروع می شوند. شما می توانید برای دسترسی به عناصر مشخصی، از بردار اعداد صحیح به عنوان اندیس استفاده کنید. به مثال زیر توجه فرمایید:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# r-studio.ir x <- c(0, 2, 4, 6, 8, 10) [1] 0 2 4 6 8 10 x[3] # استخراج سومین عنصر [1] 4 x[c(2, 4)] # دسترسی به عناصر دوم و چهارم در بردار [1] 2 6 x[-1] # همه عناصر موجود در بردار به غیر از عنصر اول [1] 2 4 6 8 10 x[c(2, -4)] # ترکیب کردن اعداد صحیح مثبت و منفی امکان پذیر نیست Error in x[c(2, -4)] : only 0's may be mixed with negative subscripts > x[c(2.4, 3.54)] # اعداد حقیقی به اعداد صحیح گرد می شوند [1] 2 4 |
2- استفاده از بردار منطقی به عنوان اندیس:
اگر از بردار منطقی (logical) به عنوان اندیس استفاده کنید، مکان هایی از بردار که در آن ها این بردار منطقی TRUE یا برقرار است به شما نشان داده می شود. این قابلیت مفید کاربردهای بسیاری در فیلتر کردن بردارها دارد.
1 2 3 4 5 6 7 8 9 |
# r-studio.ir x[c(TRUE, FALSE, FALSE, TRUE)] [1] -3 3 x[x < 0] # فیلتر کردن بردارها بر اساس شرایط دلخواه [1] -3 -1 x[x > 0] # کدام اعداد بیشتر از صفر هستند [1] 3 x>0 [1] FALSE, FALSE, FALSE, TRUE |
3- استفاده از بردار کاراکتری به عنوان اندیس:
این نوع از اندیس نویسی برای کار کردن با بردارهای اسمی مفید است. شما می توانید هر یک از عناصر یک بردار را نام گذاری کنید. مثلاً:
1 2 3 4 5 6 7 8 9 10 |
# r-studio.ir x <- c("first"=3, "second"=0, "third"=9) names(x) [1] "first" "second" "third" x["second"] second 0 x[c("first", "third")] first third 3 9 |
نحوه ویرایش یک بردار در R:
شما می توانید با استفاده از روش های بالا چند عنصر را انتخاب کرده و ویرایش کنید. به مثال زیر توجه کنید:
1 2 3 4 5 6 7 8 |
x <- seq(from=-3, to=2, by=1); x [1] -3 -2 -1 0 1 2 x[2] <- 0; x # ویرایش مولفه دوم از بردار [1] -3 0 -1 0 1 2 > x[x<0] <- 5; x # ویرایش مولفه هایی که کمتر از صفر هستند [1] 5 0 5 0 1 2 > x <- x[1:4]; x # فیلتر کردن بردار [1] 5 0 5 0 |
نحوه پاک کردن یک بردار در R
شما می توانید برای پاک کردن یک بردار، به سادگی یک NULL را به آن نسبت دهید. مثلاً:
1 2 3 4 5 6 7 |
x <- seq(from=-3, to=2, by=1); x [1] -3 -2 -1 0 1 2 x <- NULL x NULL x[4] NULL |
توجه داشته باشید که برای یادگیری کار با بردارها در R باید مثال های زیاد حل کنید.
لطفاً دیدگاه خود را برای ما ارسال کنید.
حتماً بخوانید: