列表
列表:用来储存很多内容的一个集合。 特点:
在模式上和向量类似,都是一维数据集合。
向量只能存储一种数据类型,列表中的对象可以是 R 中的任何数据结构,甚至列表本身。
在 R 语言自带的实例中state.center
就是一个列表
> state.center
$x
[1] -86.7509 -127.2500 -111.6250 -92.2992 -119.7730 -105.5130 -72.3573 -74.9841 -81.6850
[10] -83.3736 -126.2500 -113.9300 -89.3776 -86.0808 -93.3714 -98.1156 -84.7674 -92.2724
[19] -68.9801 -76.6459 -71.5800 -84.6870 -94.6043 -89.8065 -92.5137 -109.3200 -99.5898
[28] -116.8510 -71.3924 -74.2336 -105.9420 -75.1449 -78.4686 -100.0990 -82.5963 -97.1239
[37] -120.0680 -77.4500 -71.1244 -80.5056 -99.7238 -86.4560 -98.7857 -111.3300 -72.5450
[46] -78.2005 -119.7460 -80.6665 -89.9941 -107.2560
$y
[1] 32.5901 49.2500 34.2192 34.7336 36.5341 38.6777 41.5928 38.6777 27.8744 32.3329 31.7500 43.5648
[13] 40.0495 40.0495 41.9358 38.4204 37.3915 30.6181 45.6226 39.2778 42.3645 43.1361 46.3943 32.6758
[25] 38.3347 46.8230 41.3356 39.1063 43.3934 39.9637 34.4764 43.1361 35.4195 47.2517 40.2210 35.5053
[37] 43.9078 40.9069 41.5928 33.6190 44.3365 35.6767 31.3897 39.1063 44.2508 37.5630 47.4231 38.4204
[49] 44.5937 43.0504
###每个向量中有 50 个元素
创建列表
我们可以自己创建一个列表熟悉它的操作,好记性不如烂笔头。
> a <- 1:20
> b <- matrix(1:20,5)
> c <- mtcars
> d <- 'This is biotoolman'
> a;b;c;d
##结果省略~
然后我们创建一个列表mylist <- list(a,b,c,d)
> mylist
[[1]]
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
[[2]]
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
[[3]]
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
......
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
[[4]]
[1] "This is biotoolman"
查看列表
这样就简单的生成了一个列表,同时我们还可以给列表内添加名字mylist <- list(first=a,second=b,third=c,forth=d)
那我们如何进行列表的访问呢?其实它的访问和向量还是蛮相似的。例如:
访问多个列表是不能用向量mylist[1,4]
来表示,不然它会报错,这是我们应该使用mylist[c(1,4)]
这个方式有点复杂,我们还可以用另一种方式mylist$first
,它会自动给出列表内的选项。
> mylist$first
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
当我们输入mylist[1]
和mylist[[1]]
会是什么样子的呢? 答案是一样的,但是它们意义不同。
注意:当我们使用class()
函数来查看它们的类型时,一个为列表一个为数值。
插入、删除列表
那我们如何给列表添加元素呢?也是非常的简单,就像给向量添加一样,mylist[5] <- ‘ this is a txt
> mylist[5] <- 'this is a txt'
> mylist
$first
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
$second
[,1] [,2] [,3] [,4]
[1,] 1 6 11 16
[2,] 2 7 12 17
[3,] 3 8 13 18
[4,] 4 9 14 19
[5,] 5 10 15 20
$third
mpg cyl disp hp drat wt qsec vs am gear carb
Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0 1 4 4
Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0 1 4 4
......
Maserati Bora 15.0 8 301.0 335 3.54 3.570 14.60 0 1 5 8
Volvo 142E 21.4 4 121.0 109 4.11 2.780 18.60 1 1 4 2
$forth
[1] "This is biotoolman"
[[5]]
[1] "this is a txt"
关于列表的删除也非常的简单,可以使用mylist[5] <- NULL
将它赋值为空。这里就不做演示了。
结束语
今天的 R 语言的数列就学到这里了!我还是那个在生信路上摸爬滚打的工具人。一起加油吧!如果需要提供帮助或者是反馈意见,可以发送邮件到 liwei12306@163.com

文章转载自生信工具人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




