向量是最基本的R語言數(shù)據(jù)對象,有六種類型的原子向量。 它們是邏輯,整數(shù),雙精度,復(fù)雜,字符和原始。
即使在R語言中只寫入一個(gè)值,它也將成為長度為1的向量,并且屬于上述向量類型之一。
# 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'))
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
[1] "abc" [1] 12.5 [1] 63 [1] TRUE [1] 2+3i [1] 68 65 6c 6c 6f
對數(shù)值數(shù)據(jù)使用冒號(hào)運(yùn)算符
# 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)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
[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
使用sequence (Seq.)序列運(yùn)算符
# Create vector with elements from 5 to 9 incrementing by 0.4. print(seq(5, 9, by = 0.4))
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
[1] 5.0 5.4 5.8 6.2 6.6 7.0 7.4 7.8 8.2 8.6 9.0
使用C()函數(shù)
如果其中一個(gè)元素是字符,則非字符值被強(qiáng)制轉(zhuǎn)換為字符類型。
# The logical and numeric values are converted to characters. s <- c('apple','red',5,TRUE) print(s)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
[1] "apple" "red" "5" "TRUE"
使用索引訪問向量的元素。 []括號(hào)用于建立索引。 索引從位置1開始。在索引中給出負(fù)值會(huì)丟棄來自result.TRUE,FALSE或0和1的元素,也可用于索引。
# 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)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
[1] "Mon" "Tue" "Fri" [1] "Sun" "Fri" [1] "Sun" "Tue" "Wed" "Fri" "Sat" [1] "Sat"
可以添加,減去,相乘或相除兩個(gè)相同長度的向量,將結(jié)果作為向量輸出。
# 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 substraction. 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)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
[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
如果我們對不等長的兩個(gè)向量應(yīng)用算術(shù)運(yùn)算,則較短向量的元素被循環(huá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)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
[1] 7 19 8 16 4 22 [1] -1 -3 0 -6 -4 0
向量中的元素可以使用sort()函數(shù)排序。
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)
當(dāng)我們執(zhí)行上面的代碼,它產(chǎn)生以下結(jié)果 -
[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"
更多建議: