向量

R 中的向量可以具有不同的型別(例如,整數,邏輯,字元)。定義向量的最常用方法是使用函式 vector()

vector('integer',2) # creates a vector of integers of size 2.
vector('character',2) # creates a vector of characters of size 2.
vector('logical',2) # creates a vector of logicals of size 2.

然而,在 R 中,速記函式通常更受歡迎。

integer(2) # is the same as vector('integer',2) and creates an integer vector with two elements
character(2) # is the same as vector('integer',2) and creates an character vector with two elements
logical(2) # is the same as vector('logical',2) and creates an logical vector with two elements

也可以使用除預設值之外的值建立向量。通常使用函式 c() 來實現此目的。c 是組合或連線的縮寫。

c(1, 2) # creates a integer vector of two elements: 1 and 2.
c('a', 'b') # creates a character vector of two elements: a and b.
c(T,F) # creates a logical vector of two elements: TRUE and FALSE.

這裡要注意的重要事項是 R 將任何整數(例如 1)解釋為大小為 1 的整數向量。數字(例如 1.1),邏輯(例如 T 或 F)或字元(例如’a’)也是如此。因此,你實質上是組合向量,而向量又是向量。

注意你總是需要組合相似的向量。否則,R 將嘗試轉換相同型別的向量中的向量。

c(1,1.1,'a',T) # all types (integer, numeric, character and logical) are converted to the 'lowest' type which is character.

可以使用 [ 運算子查詢向量中的元素。

vec_int <- c(1,2,3)
vec_char <- c('a','b','c')
vec_int[2] # accessing the second element will return 2
vec_char[2] # accessing the second element will return 'b'

這也可用於更改值

vec_int[2] <- 5 # change the second value from 2 to 5
vec_int # returns [1] 1 5 3

最後,:運算子(函式 seq() 的縮寫)可用於快速建立數字向量。

vec_int <- 1:10
vec_int # returns [1] 1 2 3 4 5 6 7 8 9 10

這也可用於子集向量(從易於更復雜的子集)

vec_char <- c('a','b','c','d','e')
vec_char[2:4] # returns [1] "b" "c" "d"
vec_char[c(1,3,5)] # returns [1] "a" "c" "e"