R - 向量:初學者的指南
你好,未來的R語言編程者!今天,我們將踏上一段令人興奮的旅程,探索R語言中的向量世界。別擔心如果你從未編過程序——我將成為你的友好導遊,我們會一步步來。在本教程結束時,你將能夠像專業人士一樣創建和操作向量!
什麼是向量?
在我們深入探討之前,讓我們先了解什麼是向量。在R語言中,向量就像一個容器,它包含多個同類型的項目。把它想像成一列火車,有幾節車廂,每節車廂都裝著同樣的貨物。這些貨物可以是數字、文本,甚至是邏輯值(真/假)。
向量創建
讓我們開始學習如何創建向量。在R中有許多方法可以做到這一點,但我們將聚焦於最常見且最有用的方法。
使用 c() 函數
創建向量的最直接方式是使用 c()
函數。'c' 的意思是 '結合' 或 '串聯'。
# 創建一個數字向量
numbers <- c(1, 2, 3, 4, 5)
print(numbers)
# 創建一個字元向量
fruits <- c("apple", "banana", "cherry")
print(fruits)
# 創建一個邏輯向量
is_student <- c(TRUE, FALSE, TRUE, TRUE)
print(is_student)
在這些例子中,我們創建了三種不同類型的向量。 <-
符號用於將向量分配給變量名稱。
使用 : 運算符
對於創建一個數字序列,:
運算符非常方便:
# 創建一個從 1 到 10 的序列
sequence <- 1:10
print(sequence)
# 創建一個反向序列
reverse_sequence <- 10:1
print(reverse_sequence)
這是一種快速創建整數序列的方法。就像告訴R:"給我從這個到那個的所有數字。"
使用 seq() 函數
對於對您的序列有更多控制,seq()
函數是您的助手:
# 創建一個有特定步長的序列
by_twos <- seq(from = 0, to = 10, by = 2)
print(by_twos)
# 創建一個有特定長度的序列
five_numbers <- seq(from = 0, to = 1, length.out = 5)
print(five_numbers)
seq()
函數更靈活,讓您可以指定開始值、結束值、步長或您想要的元素數量。
使用 rep() 函數
有時候,您可能想重複某些值。這時 rep()
函數就派上用場了:
# 重複單一值
repeat_five <- rep(5, times = 3)
print(repeat_five)
# 重複一個向量
repeat_vector <- rep(c(1, 2), times = 3)
print(repeat_vector)
# 重複每一個元素
repeat_each <- rep(c(1, 2), each = 3)
print(repeat_each)
rep()
非常適合創建模式或用重複的值填充您的數據。
讀取向量元素
既然我們已經知道如何創建向量,讓我們學習如何讀取它們的元素。在R中,我們使用方括號 []
來達到這個目的。
通過索引讀取
記住,在R中,索引從1開始,而不是像某些其他編程語言那樣從0開始。
fruits <- c("apple", "banana", "cherry", "date")
# 讀取第一個元素
print(fruits[1]) # 輸出: "apple"
# 讀取第三個元素
print(fruits[3]) # 輸出: "cherry"
# 讀取多個元素
print(fruits[c(1, 3)]) # 輸出: "apple" "cherry"
# 讀取一個範圍的元素
print(fruits[2:4]) # 輸出: "banana" "cherry" "date"
負索引
在R中,您可以使用負索引來排除元素:
# 排除第二個元素
print(fruits[-2]) # 輸出: "apple" "cherry" "date"
# 排除多個元素
print(fruits[c(-1, -3)]) # 輸出: "banana" "date"
邏輯索引
您也可以使用邏輯向量來讀取元素:
numbers <- c(1, 2, 3, 4, 5)
# 讀取偶數
print(numbers[numbers %% 2 == 0]) # 輸出: 2 4
# 讀取大於3的數字
print(numbers[numbers > 3]) # 輸出: 4 5
向量操作
現在我們可以創建和訪問向量了,讓我們學習如何操作它們。
向量算術
您可以在向量上進行算術操作:
vec1 <- c(1, 2, 3)
vec2 <- c(4, 5, 6)
# 加法
print(vec1 + vec2) # 輸出: 5 7 9
# 乘法
print(vec1 * vec2) # 輸出: 4 10 18
# 除法
print(vec2 / vec1) # 輸出: 4 2.5 2
向量循環
當對不同長度的向量進行操作時,R會循環使用較短的向量:
short_vec <- c(1, 2)
long_vec <- c(1, 2, 3, 4, 5, 6)
print(short_vec + long_vec) # 輸出: 2 4 4 6 6 8
R會重複較短的向量以匹配較長向量的長度。
向量函數
R提供了許多有用的函數來操作向量:
numbers <- c(5, 2, 8, 1, 9)
# 向量的長度
print(length(numbers)) # 輸出: 5
# 所有元素的總和
print(sum(numbers)) # 輸出: 25
# 向量的平均值
print(mean(numbers)) # 輸出: 5
# 對向量進行排序
print(sort(numbers)) # 輸出: 1 2 5 8 9
這裡有一個表總結了一些常見的向量函數:
函數 | 描述 |
---|---|
length() | 返回向量中的元素數量 |
sum() | 計算所有元素的總和 |
mean() | 計算向量的平均值 |
median() | 找到中位數 |
max() | 返回最大值 |
min() | 返回最小值 |
sort() | 對向量進行升序排序 |
rev() | 將元素的順序顛倒 |
結論
恭喜你!你已經開始踏上了R語言向量世界的第一步。我們已經介紹了創建、訪問和基本操作。記住,熟練需要練習,所以不要猶豫去嘗試這些概念。
向量是R語言中數據操作的基本組成部分,掌握它們將為你的R語言編程之旅鋪平道路。持續探索,持續編程,最重要的是,享受樂趣!
Credits: Image by storyset