R - Vectơ

Vectơ là đối tượng dữ liệu R cơ bản nhất và có sáu loại vectơ nguyên tử. Chúng là logic, số nguyên, kép, phức tạp, ký tự và thô.

Tạo vectơ

Véc tơ nguyên tố đơn

Ngay cả khi bạn chỉ viết một giá trị trong R, nó sẽ trở thành vectơ có độ dài 1 và thuộc một trong các loại vectơ trên.

# 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'))

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

[1] "abc"
[1] 12.5
[1] 63
[1] TRUE
[1] 2+3i
[1] 68 65 6c 6c 6f

Nhiều yếu tố Vector

Using colon operator with numeric data

# 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)

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

[1]  5  6  7  8  9 10 11 12 13
[1]  6.6  7.6  8.6  9.6 10.6 11.6 12.6
[1]  3.8  4.8  5.8  6.8  7.8  8.8  9.8 10.8

Using sequence (Seq.) operator

# Create vector with elements from 5 to 9 incrementing by 0.4.
print(seq(5, 9, by = 0.4))

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

[1] 5.0 5.4 5.8 6.2 6.6 7.0 7.4 7.8 8.2 8.6 9.0

Using the c() function

Các giá trị không phải ký tự bị ép buộc thành kiểu ký tự nếu một trong các phần tử là ký tự.

# The logical and numeric values are converted to characters.
s <- c('apple','red',5,TRUE)
print(s)

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

[1] "apple" "red"   "5"     "TRUE"

Truy cập các phần tử vectơ

Các phần tử của một Vectơ được truy cập bằng cách sử dụng lập chỉ mục. Các[ ] bracketsđược sử dụng để lập chỉ mục. Lập chỉ mục bắt đầu với vị trí 1. Đưa ra giá trị âm trong chỉ mục sẽ loại bỏ phần tử đó khỏi kết quả.TRUE, FALSE hoặc là 01 cũng có thể được sử dụng để lập chỉ mục.

# 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)

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

[1] "Mon" "Tue" "Fri"
[1] "Sun" "Fri"
[1] "Sun" "Tue" "Wed" "Fri" "Sat"
[1] "Sun"

Thao tác vector

Véc tơ số học

Hai vectơ có cùng độ dài có thể được cộng, trừ, nhân hoặc chia cho kết quả là đầu ra vectơ.

# 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)

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

[1]  7 19  4 13  1 13
[1] -1 -3  4 -3 -1  9
[1] 12 88  0 40  0 22
[1] 0.7500000 0.7272727       Inf 0.6250000 0.0000000 5.5000000

Tái chế nguyên tố vector

Nếu chúng ta áp dụng các phép toán số học cho hai vectơ có độ dài không bằng nhau, thì các phần tử của vectơ ngắn hơn sẽ được tái chế để hoàn thành các phép toán.

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)

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

[1]  7 19  8 16  4 22
[1] -1 -3  0 -6 -4  0

Sắp xếp phần tử vector

Các phần tử trong một vectơ có thể được sắp xếp bằng cách sử dụng sort() chức năng.

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)

Khi chúng tôi thực thi đoạn mã trên, nó tạo ra kết quả sau:

[1]  -9   0   3   4   5   8  11 304
[1] 304  11   8   5   4   3   0  -9
[1] "Blue"   "Red"    "violet" "yellow"
[1] "yellow" "violet" "Red"    "Blue"