列表是R语言中的对象,它包含不同类型的元素,比如 - 数字,字符串,向量和另一个列表等。一个列表还可以包含一个矩阵或一个函数作为它的元素。使用list()函数创建列表。

创建一个列表

下面是一个例子来创建一个包含字符串,数字,向量和逻辑值的列表

# Create a list containing strings, numbers, vectors and a logical values.
list_data <- list("Red", "Green", c(21,32,11), TRUE, 51.23, 119.1)
print(list_data)

当我们上面的代码执行时,它产生以下结果:

[[1]]
[1] "Red" [[2]]
[1] "Green" [[3]]
[1] 21 32 11 [[4]]
[1] TRUE [[5]]
[1] 51.23 [[6]]
[1] 119.1

命名列表元素

列表元素可以给定它们的名字并且可以使用这些名称来访问。

# Create a list containing a vector, a matrix and a list.
list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow=2), list("green",12.3)) # Give names to the elements in the list.
names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list") # Show the list.
print(list_data)

当我们上面的代码执行时,它产生以下结果:

$`1st_Quarter`
[1] "Jan" "Feb" "Mar" $A_Matrix
[,1] [,2] [,3]
[1,] 3 5 -2
[2,] 9 1 8 $A_Inner_list
$A_Inner_list[[1]]
[1] "green" $A_Inner_list[[2]]
[1] 12.3

访问列表元素

列表的元素可以通过在列表中的元素的索引来访问。如遇命名列表也可以使用名称来访问。

我们继续使用在上面例子的列表

# Create a list containing a vector, a matrix and a list.
list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow=2), list("green",12.3)) # Give names to the elements in the list.
names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list") # Access the first element of the list.
print(list_data[1]) # Access the thrid element. As it is also a list, all its elements will be printed.
print(list_data[3]) # Access the list element using the name of the element.
print(list_data$A_Matrix)

当我们上面的代码执行时,它产生以下结果:

$`1st_Quarter`
[1] "Jan" "Feb" "Mar" $A_Inner_list
$A_Inner_list[[1]]
[1] "green" $A_Inner_list[[2]]
[1] 12.3 [,1] [,2] [,3]
[1,] 3 5 -2
[2,] 9 1 8

操控列表元素

我们可以添加,删除和更新列表中的元素,如下图所示。我们可以增加或删除而且只能添加到列表的末尾的元素。但是可以更新任何元素。

# Create a list containing a vector, a matrix and a list.
list_data <- list(c("Jan","Feb","Mar"), matrix(c(3,9,5,1,-2,8), nrow=2), list("green",12.3)) # Give names to the elements in the list.
names(list_data) <- c("1st Quarter", "A_Matrix", "A Inner list") # Add element at the end of the list.
list_data[4] <- "New element"
print(list_data[4]) # Remove the last element.
list_data[4] <- NULL # Print the 4th Element.
print(list_data[4]) # Update the 3rd Element.
list_data[3] <- "updated element"
print(list_data[3])

当我们上面的代码执行时,它产生以下结果:

[[1]]
[1] "New element" $NULL $`A Inner list`
[1] "updated element"

合并列表

可以把所有的列表传到一个 list()函数合并多个列表成一个列表。

# Create two lists.
list1 <- list(1,2,3)
list2 <- list("Sun","Mon","Tue") # Merge the two lists.
merged.list <- c(list1,list2) # Print the merged list.
print(merged.list)

当我们上面的代码执行时,它产生以下结果:

[[1]]
[1] 1 [[2]]
[1] 2 [[3]]
[1] 3 [[4]]
[1] "Sun" [[5]]
[1] "Mon" [[6]]
[1] "Tue"

转换列表为向量

列表可以被转换为一个向量,以便能用于进一步操纵向量的元素。所有关于向量的算术运算可以在列表被转换为矢量之后被应用。要做到这一点转换,使用unlist() 函数。它以列表作为输入,并产生一个向量。

# Create lists.
list1 <- list(1:5)
print(list1) list2 <-list(10:14)
print(list2) # Convert the lists to vectors.
v1 <- unlist(list1)
v2 <- unlist(list2) print(v1)
print(v2) # Now add the vectors
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

R语言列表list函数的更多相关文章

  1. R语言 三个函数sort();rank();order()

    R语言入门,弄懂了几个简单的函数,分享一下:R语言排序有几个基本函数: sort():rank():order()sort()是对向量进行从小到大的排序rank()返回的是对向量中每个数值对应的秩or ...

  2. R语言——基本绘图函数

    通过一个综合的例子测试绘图函数 学习的内容是tigerfish老师的教程. 第一节:基本知识 用seq函数产生100位学生的学号. > num = seq(,) > num [] [] [ ...

  3. R语言do.call 函数用法详解

    虽然R语言有类型很丰富的数据结构,但是很多时候数据结构比较复杂,那么基本就会用到list这种结构的数据类型.但是list对象很难以文本的形式导出,因此需要一个函数能快速将复杂的list结构扁平化成da ...

  4. [R]关于R语言的绘图函数

    1. 首先就是plot(x,y,...) 参数: x: 所绘图形横坐标构成的对象 y: 所绘图形纵坐标构成的对象 type: 指定所绘图形类型 pch: 指定绘制点时使用的符号 cex: 指定符号的大 ...

  5. R语言矩阵matrix函数

    矩阵是元素布置成二维矩形布局的R对象. 它们包含相同原子类型的元素.尽管我们可以创建只包含字符或只逻辑值的矩阵,但是它们没有多大用处.我们使用的是在数学计算中含有数字元素矩阵. 使用 matrix() ...

  6. R语言(自定义函数、循环语句、管道函数)

    学习R语言半年多了,以前比较注重统计方法上的学习,但是最近感觉一些基础知识也很重要.去年的参考资料是<R语言实战>,今年主要是看视频.推荐网易云课堂里的教程,很多资料都是很良心的~ 目前学 ...

  7. R语言的scale函数

    1.数据的中心化 所谓数据的中心化是指数据集中的各项数据减去数据集的均值. 例如有数据集1, 2, 3, 6, 3,其均值为3 那么中心化之后的数据集为1-3,2-3,3-3,6-3,3-3,即:-2 ...

  8. R语言常用数学函数

    语言的数学运算和一些简单的函数整理如下: 向量可以进行那些常规的算术运算,不同长度的向量可以相加,这种情况下最短的向量将被循环使用.   > x <- 1:4 > a <- 1 ...

  9. R语言:常用函数【转】

    数据结构 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量 character:字符型向量list:列表 data.frame:数据框 c:连接为向量或列表len ...

随机推荐

  1. 升级windows 10后网络连接异常

    升级 windows 10,QQ无法连接,显示“登陆超时,请检查网络或者防火墙设置”.打开360软件助手,准备升级QQ试试,360软件助手也显示网络异常. 解决方法: 右键点击开始菜单,命令提示符(管 ...

  2. Solr相似度算法一:DefaultSimilarity(基于TF-IDF的默认相似度算法)

    默认的similarity是基于TF/IDF 模块. 该 similarity有以下配置选项: discount_overlaps –确定是否重叠的标识(标记位置增量为0)都将被忽略在正常计算的时候. ...

  3. 上传文件时form表单需要添加的属性

    enctype="multipart/form-data"

  4. sql游标循环结果集

    我们知道游标是一种对结果集操作的神器,使用游标,可以很方便的循环结果集,并对结果集进行数据处理. 1.建表 CREATE TABLE [dbo].[Student]( ,) NOT NULL, ) N ...

  5. 3-C#面向对象概念

    本篇博客对应视频讲解 回顾 前两篇博文带大家快速的感知一下使用C#编写程序是怎样的过程,能实现什么样的功能.同时也提到了面向对象的概念.本篇文章就是更加详细的去将面向对象编程中常见的概念进行示例说明, ...

  6. UWP开发入门(七)——下拉刷新

    本篇意在给这几天Win10 Mobile负面新闻不断的某软洗地,想要证明实现一个简单的下拉刷新并不困难.UWP开发更大的困难在于懒惰,缺乏学习的意愿.而不是“某软连下拉刷新控件都没有”这样的想法. 之 ...

  7. PostMan工具使用之基础篇

    PostMan工具使用之基础篇 一.什么是PostMan Postman一款非常流行的API调试工具.(其他测试工具 Jmeter.soapUI) 二.下载及安装: 1.下载: 下载地址:https: ...

  8. MySQL多线程备份工具mydumper 之 RDS外部实例迁移平台

    此文已由作者温正湖授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1.Format_description_event问题: BINLOG ' kTXkUxMKAAAALQA ...

  9. poj做的题

    1699 1080 1170 1239(不错) 1659(读读怎么写)

  10. Web Api 端点设计 与 Oauth

    最近一直看这方面的东西,总结如下: 在后续会进行实例demo演示,本篇进行理论详解. 下篇相关博客: <Web Api 内部数据思考 和 利用http缓存优化 Api> <API接口 ...