清單是 R 語言的對象集合,可以用來儲存不同類型的資料,可以是數字、字元串、向量、另一個清單等,當然還可以包含矩陣和函數。
R 語言建立清單使用 list() 函數。
如下執行個體,我們建立一個清單,包含了字元串、向量和數字:
list_data <- list("runoob", "google", c(11,22,33), 123, 51.23, 119.1)
print(list_data)
執行以上代碼輸出結果為:
我們可以使用 names() 函數給清單的元素命名:
# 清單包含向量、矩陣、清單
list_data <- list(c("Google","Runoob","Taobao"), matrix(c(1,2,3,4,5,6), nrow = 2),
list("runoob",12.3))
# 給清單元素設定名字
names(list_data) <- c("Sites", "Numbers", "Lists")
# 顯示清單
清單中的元素可以使用索引來通路,如果使用來 names() 函數命名後,我們還可以使用對應名字來通路:
print(list_data[1])
# 通路清單的第三個元素
print(list_data[3])
# 通路第一個向量元素
print(list_data$Numbers)
我們可以對清單進行添加、删除、更新的操作,如下執行個體:
# 添加元素
list_data[4] <- "新元素"
print(list_data[4])
# 删除元素
list_data[4] <- NULL
# 删除後輸出為 NULL
# 更新元素
list_data[3] <- "我替換來第三個元素"
我們可以使用 c() 函數将多個清單合并為一個清單:
# 建立兩個清單
list1 <- list(1,2,3)
list2 <- list("Google","Runoob","Taobao")
# 合并清單
merged.list <- c(list1,list2)
# 顯示合并後的清單
print(merged.list)
要将清單轉換為向量可以使用 unlist() 函數,将清單轉換為向量,可以友善我們進行算術運算:
# 建立清單
list1 <- list(1:5)
print(list1)
list2 <-list(10:14)
print(list2)
# 轉換為向量
v1 <- unlist(list1)
v2 <- unlist(list2)
print(v1)
print(v2)
# 兩個向量相加
result <- v1+v2
print(result)