數(shù)據(jù)結(jié)構(gòu)是指在計算機中存儲和組織數(shù)據(jù)的方式,不同的數(shù)據(jù)結(jié)構(gòu)有不同的特點和適用場景。R語言中的常用數(shù)據(jù)結(jié)構(gòu),包括向量、矩陣、數(shù)組、列表和數(shù)據(jù)框。關(guān)于數(shù)據(jù)結(jié)構(gòu)的使用,我們將分四篇文章分別介紹每種數(shù)據(jù)結(jié)構(gòu)的操作方法和代碼示例。
為方便大家理解記憶,對每種數(shù)據(jù)結(jié)構(gòu)的基本操作概括為四大類:
- 創(chuàng)建數(shù)據(jù)結(jié)構(gòu)
- 往里面添加數(shù)據(jù)
- 從里面查詢數(shù)據(jù)
- 對里面的數(shù)據(jù)進(jìn)行修改
這篇文章我們將介紹向量的使用
向量
向量是R語言中最基本的數(shù)據(jù)結(jié)構(gòu),它是由一系列相同類型的元素組成的一維數(shù)組。向量的類型可以是數(shù)值、字符、邏輯或因子等,但是每個向量只能包含一種數(shù)據(jù)類型。向量的長度是指它包含的元素個數(shù),可以用length()函數(shù)來獲取。
創(chuàng)建向量
創(chuàng)建向量的一種常用方法是使用c()函數(shù),它可以將多個元素組合成一個向量。例如:
# 創(chuàng)建一個數(shù)值向量
x <- c(1, 2, 3, 4, 5)
x
## [1] 1 2 3 4 5
# 創(chuàng)建一個字符向量
y <- c("a", "b", "c", "d", "e")
y
# [1] "a" "b" "c" "d" "e"
# 創(chuàng)建一個邏輯向量
z <- c(TRUE, FALSE, TRUE, FALSE, TRUE)
z
# [1] TRUE FALSE TRUE FALSE TRUE
另一種創(chuàng)建向量的方法是使用序列生成函數(shù),如seq()和rep()。seq()函數(shù)可以根據(jù)指定的起始值、結(jié)束值和步長來生成一個等差數(shù)列,rep()函數(shù)可以根據(jù)指定的重復(fù)次數(shù)或長度來復(fù)制一個元素或向量。例如:
# 使用seq()函數(shù)創(chuàng)建一個從1到10,步長為2的數(shù)值向量
a <- seq(from = 1, to = 10, by = 2)
a
# [1] 1 3 5 7 9
# 使用rep()函數(shù)創(chuàng)建一個重復(fù)5次的字符向量
b <- rep("hello", times = 5)
b
# [1] "hello" "hello" "hello" "hello" "hello"
# 使用rep()函數(shù)創(chuàng)建一個重復(fù)到長度為10的邏輯向量
c <- rep(c(TRUE, FALSE), length.out = 10)
c
# [1] TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE TRUE FALSE
訪問向量
訪問向量中的元素可以使用方括號[]和索引號。索引號從1開始,表示第一個元素,負(fù)數(shù)表示排除對應(yīng)位置的元素。例如:
# 訪問x向量中的第一個元素
x[1]
# [1] 1
# 訪問y向量中的最后一個元素
y[length(y)]
# [1] "e"
# 訪問z向量中除了第三個元素以外的所有元素
z[-3]
# [1] TRUE FALSE FALSE TRUE
也可以使用邏輯表達(dá)式或條件語句來訪問向量中滿足特定條件的元素。例如:
# 訪問x向量中大于3的元素
x[x > 3]
# [1] 4 5
# 訪問y向量中不等于"d"的元素
y[y != "d"]
# [1] "a" "b" "c" "e"
# 訪問z向量中為TRUE的元素
z[z == TRUE]
# [1] TRUE TRUE TRUE
修改向量
修改向量中的元素可以使用賦值符號<-或者等號=。例如:
# 修改x向量中的第二個元素為10
x[2] <- 10x
# [1] 1 10 3 4 5
# 修改y向量中的第四個和第五個元素為"f"和"g"
y[4:5] = c("f", "g")
y
# [1] "a" "b" "c" "f" "g"
# 修改z向量中為FALSE的元素為NA
z[z == FALSE] <- NA
z
# [1] TRUE NA TRUE NA TRUE
也可以使用向量運算來修改向量中的元素。例如:
# 對x向量中的每個元素加1
x <- x + 1
x
# [1] 2 11 4 5 6
# 對y向量中的每個元素連接一個感嘆號
y <- paste(y, "!")
y
# [1] "a!" "b!" "c!" "f!" "g!"
# 對z向量中的每個元素取反
z <- !z
z
# [1] FALSE NA FALSE NA FALSE