R语言列表list函数
列表是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函数的更多相关文章
- R语言 三个函数sort();rank();order()
R语言入门,弄懂了几个简单的函数,分享一下:R语言排序有几个基本函数: sort():rank():order()sort()是对向量进行从小到大的排序rank()返回的是对向量中每个数值对应的秩or ...
- R语言——基本绘图函数
通过一个综合的例子测试绘图函数 学习的内容是tigerfish老师的教程. 第一节:基本知识 用seq函数产生100位学生的学号. > num = seq(,) > num [] [] [ ...
- R语言do.call 函数用法详解
虽然R语言有类型很丰富的数据结构,但是很多时候数据结构比较复杂,那么基本就会用到list这种结构的数据类型.但是list对象很难以文本的形式导出,因此需要一个函数能快速将复杂的list结构扁平化成da ...
- [R]关于R语言的绘图函数
1. 首先就是plot(x,y,...) 参数: x: 所绘图形横坐标构成的对象 y: 所绘图形纵坐标构成的对象 type: 指定所绘图形类型 pch: 指定绘制点时使用的符号 cex: 指定符号的大 ...
- R语言矩阵matrix函数
矩阵是元素布置成二维矩形布局的R对象. 它们包含相同原子类型的元素.尽管我们可以创建只包含字符或只逻辑值的矩阵,但是它们没有多大用处.我们使用的是在数学计算中含有数字元素矩阵. 使用 matrix() ...
- R语言(自定义函数、循环语句、管道函数)
学习R语言半年多了,以前比较注重统计方法上的学习,但是最近感觉一些基础知识也很重要.去年的参考资料是<R语言实战>,今年主要是看视频.推荐网易云课堂里的教程,很多资料都是很良心的~ 目前学 ...
- R语言的scale函数
1.数据的中心化 所谓数据的中心化是指数据集中的各项数据减去数据集的均值. 例如有数据集1, 2, 3, 6, 3,其均值为3 那么中心化之后的数据集为1-3,2-3,3-3,6-3,3-3,即:-2 ...
- R语言常用数学函数
语言的数学运算和一些简单的函数整理如下: 向量可以进行那些常规的算术运算,不同长度的向量可以相加,这种情况下最短的向量将被循环使用. > x <- 1:4 > a <- 1 ...
- R语言:常用函数【转】
数据结构 一.数据管理vector:向量 numeric:数值型向量 logical:逻辑型向量 character:字符型向量list:列表 data.frame:数据框 c:连接为向量或列表len ...
随机推荐
- 微信小程序web-view之wx.miniProgram.redirectTo
17年微信小程序官方提供了web-view组件. 官方描述:web-view组件是一个可以用来承载网页的容器,会自动铺满整个小程序页面.个人类型与海外类型的小程序暂不支持使用. 这段时间研究了一下小程 ...
- 用jquery-table2excel,进行导出excel
jquery-table2excel是一款可以将HTML表格的内容导出到微软Excel电子表格中的jQuery插件.该插件可以根据你的需要导出表格中的内容,不需要的行可以不导出. 它文件体积小,使用非 ...
- VUE环境安装和创建项目
1.首先要安装nodejs和npm. 下载nodejs安装,下载地址:https://nodejs.org/en/ 安装很简单一路next即可. 安装完成后可以在cmd窗口输入node -v 和 np ...
- OpenStack 业务链networking-sfc介绍 (2) - 底层原理
原文链接:https://blog.csdn.net/bc_vnetwork/article/details/65630475 1. SFC底层实现原理 port chain和ovs driver/ ...
- 谈一谈PHP计划任务
公司所用计划任务均是大概这样子的: */ * * * * root cd /opt/xxxx/test_S1/html/xxxx/admin; php index.php task testOne & ...
- “全栈2019”Java异常第十五章:异常链详解
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java异 ...
- Spring-JDBDTamplate 的操作
基本的 增,删,改:(只演示增加 因为他们调用的方法都是update方法): package com.hxzy.spring_jdbc_template; import org.springfr ...
- HDU 3007 模拟退火算法
Buried memory Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tot ...
- VMware 虚拟机报错解决
Could not apply the stored configuration for monitors none of the selected modes were compatible wit ...
- SpringBoot整合MyBatis及Thymeleaf
http://www.cnblogs.com/ludashi/archive/2017/05/08/6669133.html 上篇博客我们聊了<JavaEE开发之SpringBoot工程的创建. ...