列表是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. Jquery EasyUI 各组件属性、事件详解

    CSS类定义: div easyui-window                               window窗口样式 属性如下: 1)       modal:是否生成模态窗口.tru ...

  2. js如何给当前日期+1?

    一天=24小时=1440分钟=86400秒 所以给当前日期加一天的步骤为: 1.获取当前日期: 2.利用86400秒给其进行加一天操作: 3.类似加一天,两天,一月,一年等,过程如此. 代码如下(以j ...

  3. JgrId 无数据返回设置

    在addJSONData方法中 while (i < len) { 前增加以下代码 ) { rowData.push('<tr role="row" id=" ...

  4. WCF快速上手(二)

    服务端是CS程序,客户端(调用者)是BS程序 一.代码结构: 二.服务接口Contract和实体类Domain INoticeService: using Domain; using System; ...

  5. 类文件结构与javap的使用

    此文已由作者赵计刚薪授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 1.javap的使用与类文件结构 使用过程: java源代码:  1 package compile;   ...

  6. Android 为 TextView 添加超链接 (网址,邮件,电话)

    <string name="info">Cette application a été développée par <a href="http://w ...

  7. django系列3.1--url路由配置, 正则, 分发include, 分组命名匹配

    一.url配置 在django项目中urls.py文件中就是为这个url调用的view(视图)函数之间的映射表,来配置访问的一个url执行什么代码 默认的基本格式: from django.conf. ...

  8. Javascript实例 -- 计时器, 搜索框,selected联动

    计时器: <body> <input type="text" id="i1"> <input type="button& ...

  9. 谈一谈PHP计划任务

    公司所用计划任务均是大概这样子的: */ * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testOne & ...

  10. 【OCP题库-12c】最新CUUG OCP 071考试题库(71题)

    71.(32-18) choose three Which three statements indicate the end of a transaction? (Choose three.) A) ...