如下实例,我们创建一个列表,包含了字符串、向量和数字:
list_data
<-
list
(
"runoob"
,
"google"
,
c
(
11
,
22
,
33
)
,
123
,
51.23
,
119.1
)
print
(
list_data
)
执行以上代码输出结果为:
[[1]]
[1] "runoob"
[[2]]
[1] "google"
[[3]]
[1] 11 22 33
[[4]]
[1] 123
[[5]]
[1] 51.23
[[6]]
[1] 119.1
我们可以使用
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"
)
# 显示列表
print
(
list_data
)
执行以上代码输出结果为:
$Sites
[1] "Google" "Runoob" "Taobao"
$Numbers
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
$Lists
$Lists[[1]]
[1] "runoob"
$Lists[[2]]
[1] 12.3
列表中的元素可以使用索引来访问,如果使用来
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"
)
# 显示列表
print
(
list_data
[
1
]
)
# 访问列表的第三个元素
print
(
list_data
[
3
]
)
# 访问第一个向量元素
print
(
list_data$Numbers
)
执行以上代码输出结果为:
$Sites
[1] "Google" "Runoob" "Taobao"
$Lists
$Lists[[1]]
[1] "runoob"
$Lists[[2]]
[1] 12.3
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
操作列表元素
我们可以对列表进行添加、删除、更新的操作,如下实例:
# 列表包含向量、矩阵、列表
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"
)
# 添加元素
list_data
[
4
]
<-
"新元素"
print
(
list_data
[
4
]
)
# 删除元素
list_data
[
4
]
<-
NULL
# 删除后输出为 NULL
print
(
list_data
[
4
]
)
# 更新元素
list_data
[
3
]
<-
"我替换来第三个元素"
print
(
list_data
[
3
]
)
执行以上代码输出结果为:
[[1]]
[1] "新元素"
$Lists
[1] "我替换来第三个元素"
我们可以使用
c()
函数将多个列表合并为一个列表:
# 创建两个列表
list1
<-
list
(
1
,
2
,
3
)
list2
<-
list
(
"Google"
,
"Runoob"
,
"Taobao"
)
# 合并列表
merged.
list
<-
c
(
list1,list2
)
# 显示合并后的列表
print
(
merged.
list
)
执行以上代码输出结果为:
[[1]]
[1] 1
[[2]]
[1] 2
[[3]]
[1] 3
[[4]]
[1] "Google"
[[5]]
[1] "Runoob"
[[6]]
[1] "Taobao"
列表转换为向量
要将列表转换为向量可以使用
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
)
执行以上代码输出结果为:
[[1]]
[1] 1 2 3 4 5
[[1]]
[1] 10 11 12 13 14
[1] 1 2 3 4 5
[1] 10 11 12 13 14
[1] 11 13 15 17 19