R语言 命名列表
列表是R语言中的一个对象,由各种不同的元素组成。一个列表甚至可以包含矩阵、数据帧或函数作为其元素。列表可以用 R 语言中的 list() 函数来创建。命名列表也可以用相同的函数来创建,通过指定元素的名称来访问它们。命名列表也可以用 names() 函数创建,在定义列表后指定元素的名称。在这篇文章中,我们将学习使用两种不同的方法在R中创建命名列表,以及可以在命名列表上进行的不同操作。
语法: names(x) <- value
参数:
x: 表示一个R对象
value: 表示必须给 x 对象中的元素命名。
创建一个命名的列表
命名列表可以通过两种方法创建。第一种方法是在定义列表时给元素分配名字,另一种方法是使用 names() 函数。
例子 1:
在这个例子中,我们将不使用 names() 函数来创建一个命名列表。
# Defining a list with names
x <- list(mt = matrix(1:6, nrow = 2),
lt = letters[1:8],
n = c(1:10))
# Print whole list
cat("Whole List:\n")
print(x)
输出
Whole List:
mt
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6lt
[1] "a" "b" "c" "d" "e" "f" "g" "h"
$n
[1] 1 2 3 4 5 6 7 8 9 10
例 2:
在这个例子中,我们将在定义列表后使用 names() 函数定义列表中的元素名称。
# Defining list
x <- list(matrix(1:6, nrow = 2),
letters[1:8],
c(1:10))
# Print whole list
cat("Whole list:\n")
print(x)
输出。
Whole list:
[[1]]
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
[[2]]
[1] "a" "b" "c" "d" "e" "f" "g" "h"
[[3]]
[1] 1 2 3 4 5 6 7 8 9 10
访问命名列表的组件
命名列表的组件可以通过 $ 运算符轻松访问。
例子
# Defining a list with names
x <- list(mt = matrix(1:6, nrow = 2),
lt = letters[1:8],
n = c(1:10))
# Print list elements using the names given
# Prints element of the list named "mt"
cat("Element named 'mt':\n")
print(xmt)
cat("\n")
# Print element of the list named "n"
cat("Element named 'n':\n")
print(xn)
输出
Element named 'mt':
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
Element named 'n':
[1] 1 2 3 4 5 6 7 8 9 10
修改命名列表的组件
可以通过给命名列表的组件分配新的值来修改它们。
例子
# Defining a named list
lt <- list(a = 1,
let = letters[1:8],
mt = matrix(1:6, nrow = 2))
cat("List before modifying:\n")
print(lt)
# Modifying element named 'a'
lt$a <- 5
cat("List after modifying:\n")
print(lt)
输出
List before modifying:
a
[1] 1let
[1] "a" "b" "c" "d" "e" "f" "g" "h"
mt
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
List after modifying:a
[1] 5
let
[1] "a" "b" "c" "d" "e" "f" "g" "h"mt
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
从命名的列表中删除组件
要从命名的列表中删除元素,我们将使用 within() 函数,其结果将被分配给命名的列表本身。
例子
# Defining a named list
lt <- list(a = 1,
let = letters[1:8],
mt = matrix(1:6, nrow = 2))
cat("List before deleting:\n")
print(lt)
# Modifying element named 'a'
lt <- within(lt, rm(a))
cat("List after deleting:\n")
print(lt)
输出
List before deleting:
a
[1] 1let
[1] "a" "b" "c" "d" "e" "f" "g" "h"
mt
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
List after deleting:let
[1] "a" "b" "c" "d" "e" "f" "g" "h"
$mt
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6