R语言入门 Chapter03 | 列表
不登高山,不知天之高也;不临深溪,不知地之厚也。 ——荀子这篇文章讲述的是R语言中关于列表的相关知识。希望这篇R语言文章对您有所帮助!如果您有想学习的知识或建议,可以给作者留言~
Chapter03 | 列表
1、列表顾名思义就是用来存储很多内容的一个集合,在其他编程语言中,列表一般和数组是等同的,但是在R语言中,列表确实R中最复杂的一种数据结构,也是非常重要的一种数据结构。
2、列表就是一些对象的有序集合。队列中可以存储若干向量、矩阵、数据框、甚至其他列表的组合。
向量和列表:
1、在模式上和向量类似,都说是一维数据组合。
2、向量只能存储一种数据类型,列表中的对象可以是R中的任何数据结构,甚至列表本身。
自带列表:
[*] state.center // 美国每个州的经纬度
[*] 1、列表的创建
# 分别创建以下四个
> a <- 1:20
> b <- matrix(1:24,4,6)
> c=mtcars
> d <- "This is a test list"
# 创建一个列表来存取以上内容
> mlist <- list(a,b,c,d)
> mlist
[]
123456789 10 11 12 13 14 15 16 17 18 19 20
[]
[,1] [,2] [,3] [,4] [,5] [,6]
1 5 9 13 17 21
2 6 10 14 18 22
3 7 11 15 19 23
4 8 12 16 20 24
[]
mpg cyldisphp drat wtqsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.4601 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.0201 4 4
Datsun 710 22.8 4 108.093 3.85 2.320 18.6111 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.4410 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.0200 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.2210 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.8400 3 4
Merc 240D 24.4 4 146.762 3.69 3.190 20.0010 4 2
Merc 230 22.8 4 140.895 3.92 3.150 22.9010 4 2
Merc 280 19.2 6 167.6 123 3.92 3.440 18.3010 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.9010 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.4000 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.6000 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.0000 3 3
Cadillac Fleetwood10.4 8 472.0 205 2.93 5.250 17.9800 3 4
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.8200 3 4
Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.4200 3 4
Fiat 128 32.4 478.766 4.08 2.200 19.4711 4 1
Honda Civic 30.4 475.752 4.93 1.615 18.5211 4 2
Toyota Corolla 33.9 471.165 4.22 1.835 19.9011 4 1
Toyota Corona 21.5 4 120.197 3.70 2.465 20.0110 3 1
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.8700 3 2
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.3000 3 2
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.4100 3 4
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.0500 3 2
Fiat X1-9 27.3 479.066 4.08 1.935 18.9011 4 1
Porsche 914-2 26.0 4 120.391 4.43 2.140 16.7001 5 2
Lotus Europa 30.4 495.1 113 3.77 1.513 16.9011 5 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.5001 5 4
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.5001 5 6
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.6001 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.6011 4 2
[]
"This is a test list"
# 为每个对象添加一个名称
> mlist <- list(first=a,second=b,third=c,fourth=d)
> mlist
$first
123456789 10 11 12 13 14 15 16 17 18 19 20
$second
[,1] [,2] [,3] [,4] [,5] [,6]
1 5 9 13 17 21
2 6 10 14 18 22
3 7 11 15 19 23
4 8 12 16 20 24
$third
mpg cyldisphp drat wtqsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.4601 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.0201 4 4
Datsun 710 22.8 4 108.093 3.85 2.320 18.6111 4 1
Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.4410 3 1
Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.0200 3 2
Valiant 18.1 6 225.0 105 2.76 3.460 20.2210 3 1
Duster 360 14.3 8 360.0 245 3.21 3.570 15.8400 3 4
Merc 240D 24.4 4 146.762 3.69 3.190 20.0010 4 2
Merc 230 22.8 4 140.895 3.92 3.150 22.9010 4 2
Merc 280 19.2 6 167.6 123 3.92 3.440 18.3010 4 4
Merc 280C 17.8 6 167.6 123 3.92 3.440 18.9010 4 4
Merc 450SE 16.4 8 275.8 180 3.07 4.070 17.4000 3 3
Merc 450SL 17.3 8 275.8 180 3.07 3.730 17.6000 3 3
Merc 450SLC 15.2 8 275.8 180 3.07 3.780 18.0000 3 3
Cadillac Fleetwood10.4 8 472.0 205 2.93 5.250 17.9800 3 4
Lincoln Continental 10.4 8 460.0 215 3.00 5.424 17.8200 3 4
Chrysler Imperial 14.7 8 440.0 230 3.23 5.345 17.4200 3 4
Fiat 128 32.4 478.766 4.08 2.200 19.4711 4 1
Honda Civic 30.4 475.752 4.93 1.615 18.5211 4 2
Toyota Corolla 33.9 471.165 4.22 1.835 19.9011 4 1
Toyota Corona 21.5 4 120.197 3.70 2.465 20.0110 3 1
Dodge Challenger 15.5 8 318.0 150 2.76 3.520 16.8700 3 2
AMC Javelin 15.2 8 304.0 150 3.15 3.435 17.3000 3 2
Camaro Z28 13.3 8 350.0 245 3.73 3.840 15.4100 3 4
Pontiac Firebird 19.2 8 400.0 175 3.08 3.845 17.0500 3 2
Fiat X1-9 27.3 479.066 4.08 1.935 18.9011 4 1
Porsche 914-2 26.0 4 120.391 4.43 2.140 16.7001 5 2
Lotus Europa 30.4 495.1 113 3.77 1.513 16.9011 5 2
Ford Pantera L 15.8 8 351.0 264 4.22 3.170 14.5001 5 4
Ferrari Dino 19.7 6 145.0 175 3.62 2.770 15.5001 5 6
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.6001 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.6011 4 2
$fourth
"This is a test list"
[*] 2、列表的访问
# 索引进行访问
> mlist
$first
123456789 10 11 12 13 14 15 16 17 18 19 20
# 访问多个元素 ,需要使用向量
> mlist
$first
123456789 10 11 12 13 14 15 16 17 18 19 20
$fourth
"This is a test list"
# 使用名字来访问列表
> state.center
$x
-86.7509 -127.2500 -111.6250-92.2992 -119.7730 -105.5130-72.3573-74.9841-81.6850
-83.3736 -126.2500 -113.9300-89.3776-86.0808-93.3714-98.1156-84.7674-92.2724
-68.9801-76.6459-71.5800-84.6870-94.6043-89.8065-92.5137 -109.3200-99.5898
-116.8510-71.3924-74.2336 -105.9420-75.1449-78.4686 -100.0990-82.5963-97.1239
-120.0680-77.4500-71.1244-80.5056-99.7238-86.4560-98.7857 -111.3300-72.5450
-78.2005 -119.7460-80.6665-89.9941 -107.2560
$y
32.5901 49.2500 34.2192 34.7336 36.5341 38.6777 41.5928 38.6777 27.8744 32.3329 31.7500
43.5648 40.0495 40.0495 41.9358 38.4204 37.3915 30.6181 45.6226 39.2778 42.3645 43.1361
46.3943 32.6758 38.3347 46.8230 41.3356 39.1063 43.3934 39.9637 34.4764 43.1361 35.4195
47.2517 40.2210 35.5053 43.9078 40.9069 41.5928 33.6190 44.3365 35.6767 31.3897 39.1063
44.2508 37.5630 47.4231 38.4204 44.5937 43.0504
# 访问列表的元素
> mlist$first
123456789 10 11 12 13 14 15 16 17 18 19 20
# 高效方法
> state.center$x
-86.7509 -127.2500 -111.6250-92.2992 -119.7730 -105.5130-72.3573-74.9841-81.6850
-83.3736 -126.2500 -113.9300-89.3776-86.0808-93.3714-98.1156-84.7674-92.2724
-68.9801-76.6459-71.5800-84.6870-94.6043-89.8065-92.5137 -109.3200-99.5898
-116.8510-71.3924-74.2336 -105.9420-75.1449-78.4686 -100.0990-82.5963-97.1239
-120.0680-77.4500-71.1244-80.5056-99.7238-86.4560-98.7857 -111.3300-72.5450
-78.2005 -119.7460-80.6665-89.9941 -107.2560
# 输出列表的第一个数,一个中括号输出的是列表的子集,本质还是一个列表输入两个中括号输出的是元素本身的类型
> mlist[]
123456789 10 11 12 13 14 15 16 17 18 19 20
> mlist
$first
123456789 10 11 12 13 14 15 16 17 18 19 20
[*] 单双中括号的区别
# 通过class函数查看类型
> class(mlist)
"list"
> class(mlist[])
"matrix"
# 给列表进行赋值
mlist[] <- iris #使用两个中括号正确
# 清空列表的值
mlist <- NULL #
mlist[] <- NULL # 清空列表元素的值
https://blog.51cto.com/u_14683590/3737459
页:
[1]