R语言 命名列表

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)
R

输出

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
R

例 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)
R

输出。

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
R

访问命名列表的组件

命名列表的组件可以通过 $ 运算符轻松访问。

例子

# 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)
R

输出

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
R

修改命名列表的组件

可以通过给命名列表的组件分配新的值来修改它们。

例子

# 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)
R

输出

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
R

从命名的列表中删除组件

要从命名的列表中删除元素,我们将使用 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)
R

输出

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
R

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程