آموزش وکتور در R به زبان ساده
وکتورها اساسی ترین اشیاء داده در R هستند و شش نوع بردار وجود دارد که عبارتند از: منطقی، عدد صحیح ، مضاعف، مختلط، کاراکتر و خام.
ایجاد بردار
بردارهای تک عضوی
حتی زمانی که شما فقط یک مقدار در R می نویسید؛ آن مقدار درواقع برداری است که طول ۱ دارد و به یکی از انواع بردارهای بالا تعلق دارد:
# Atomic vector of type character.
print(“abc”);
# Atomic vector of type double.
print(12.5)
# Atomic vector of type integer.
print(63L)
# Atomic vector of type logical.
print(TRUE)
# Atomic vector of type complex.
print(2+3i)
# Atomic vector of type raw.
print(charToRaw(‘hello’))
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر حاصل می شود:
[۱] “abc”
[۱] ۱۲٫۵
[۱] ۶۳
[۱] TRUE
[۱] ۲+۳i
[۱] ۶۸ ۶۵ ۶c 6c 6f
بردارهای چند عضوی
با استفاده از عملگر دو نقطه با داده های عددی؛ ایجاد می شوند:
# Creating a sequence from 5 to 13.
v <- 5:13
print(v)
# Creating a sequence from 6.6 to 12.6.
v <- 6.6:12.6
print(v)
# If the final element specified does not belong to the sequence then it is discarded.
v <- 3.8:11.4
print(v)
زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر به دست می آید:
[۱] ۵ ۶ ۷ ۸ ۹ ۱۰ ۱۱ ۱۲ ۱۳
[۱] ۶٫۶ ۷٫۶ ۸٫۶ ۹٫۶ ۱۰٫۶ ۱۱٫۶ ۱۲٫۶
[۱] ۳٫۸ ۴٫۸ ۵٫۸ ۶٫۸ ۷٫۸ ۸٫۸ ۹٫۸ ۱۰٫۸
استفاده از عملگر (.Seq)
# Create vector with elements from 5 to 9 incrementing by 0.4.
print(seq(5, 9, by = 0.4))
زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر به دست می آید:
[۱] ۵٫۰ ۵٫۴ ۵٫۸ ۶٫۲ ۶٫۶ ۷٫۰ ۷٫۴ ۷٫۸ ۸٫۲ ۸٫۶ ۹٫۰
استفاده از تابع ()c
اگر یکی از عناصر، کاراکتر باشد؛ مقادیر غیر کاراکتری به نوعی کاراکتر تخصیص داده می شود.
# The logical and numeric values are converted to characters.
s <- c(‘apple’,’red’,5,TRUE)
print(s)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر حاصل می شود:
[۱] “apple” “red” “5” “TRUE”
دسترسی به عناصر بردار
عناصر بردار با استفاده از شاخص گذاری در دسترس قرار می گیرند. براکت ها [ ] برای شاخص گذاری و فهرست سازی استفاده می شود. شاخص گذاری با موقعیت ۱ آغاز می شود. دادن یک مقدار منفی در این شاخص، باعث می شود که این عنصر از نتیجه حذف شود. TREU، FASE یا ۰ و ۱ را نیز می توان برای شاخص گذاری استفاده کرد.
# Accessing vector elements using position.
t <- c(“Sun”,”Mon”,”Tue”,”Wed”,”Thurs”,”Fri”,”Sat”)
u <- t[c(2,3,6)]
print(u)
# Accessing vector elements using logical indexing.
v <- t[c(TRUE,FALSE,FALSE,FALSE,FALSE,TRUE,FALSE)]
print(v)
# Accessing vector elements using negative indexing.
x <- t[c(-2,-5)]
print(x)
# Accessing vector elements using 0/1 indexing.
y <- t[c(0,0,0,0,0,0,1)]
print(y)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر حاصل می شود:
[۱] “Mon” “Tue” “Fri”
[۱] “Sun” “Fri”
[۱] “Sun” “Tue” “Wed” “Fri” “Sat”
[۱] “Sun”
به کار گیری بردار
دو بردار با طول یکسان را می توان با هم جمع بست، از هم کم کرد؛ در هم ضرب یا بر هم تقسیم نمود و حاصل را به صورت یک بردار در خروجی ایجاد کرد.
# Create two vectors.
v1 <- c(3,8,4,5,0,11)
v2 <- c(4,11,0,8,1,2)
# Vector addition.
add.result <- v1+v2
print(add.result)
# Vector subtraction.
sub.result <- v1-v2
print(sub.result)
# Vector multiplication.
multi.result <- v1*v2
print(multi.result)
# Vector division.
divi.result <- v1/v2
print(divi.result)
زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر ایجاد می شود:
[۱] ۷ ۱۹ ۴ ۱۳ ۱ ۱۳
[۱] -۱ -۳ ۴ -۳ -۱ ۹
[۱] ۱۲ ۸۸ ۰ ۴۰ ۰ ۲۲
[۱] ۰٫۷۵۰۰۰۰۰ ۰٫۷۲۷۲۷۲۷ Inf 0.6250000 0.0000000 5.5000000
بازیافت عناصر برداری
اگر عملیات حسابی را روی دو بردار با طول نابرابر اعمال کنیم؛ سپس عناصر بردار کوتاه تر برای تکمیل کردن عملیات؛ بازیافت می شوند.
v1 <- c(3,8,4,5,0,11)
v2 <- c(4,11)
# V2 becomes c(4,11,4,11,4,11)
add.result <- v1+v2
print(add.result)
sub.result <- v1-v2
print(sub.result)
زمانی که کد بالا را اجرا می کنیم؛ نتایج زیر ایجاد می شود:
[۱] ۷ ۱۹ ۸ ۱۶ ۴ ۲۲
[۱] -۱ -۳ ۰ -۶ -۴ ۰
مرتب سازی اعضای یک بردار
اعضای درون یک بردار را می توان با استفاده از تابع ()sort مرتب سازی کرد.
v <- c(3,8,4,5,0,11, -9, 304)
# Sort the elements of the vector.
sort.result <- sort(v)
print(sort.result)
# Sort the elements in the reverse order.
revsort.result <- sort(v, decreasing = TRUE)
print(revsort.result)
# Sorting character vectors.
v <- c(“Red”,”Blue”,”yellow”,”violet”)
sort.result <- sort(v)
print(sort.result)
# Sorting character vectors in reverse order.
revsort.result <- sort(v, decreasing = TRUE)
print(revsort.result)
زمانی که کد بالا را اجرا می کنیم؛ نتیجه زیر به دست می آید:
[۱] -۹ ۰ ۳ ۴ ۵ ۸ ۱۱ ۳۰۴
[۱] ۳۰۴ ۱۱ ۸ ۵ ۴ ۳ ۰ -۹
[۱] “Blue” “Red” “violet” “yellow”
[۱] “yellow” “violet” “Red” “Blue”