R语言_list()函数用法

Python014

R语言_list()函数用法,第1张

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

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

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

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

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

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

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

is.vector(A):判断A是否为向量;

as.vector(A):如A是矩阵(数组),as.vector就是将矩阵转化为向量。

R中的vector分为两类,atomic和list,二者的区别在于,前者元素类型必须相同,后者可以不同。前者的代表是向量和矩阵,后者的代表是list和数据框。

is.vector

由于它们都是vector,所以用is.vector检验无法区分向量和列表。当然,也无法用as.vector将列表转换成向量。

同样是vector,矩阵和数据框用is.vector检验就返回的是FALSE,这说明is.vector也不是检验vector的,它的真正原理在于,检查是否最多只有一个属性:name。即查看其属性,如果没有属性或者只有一个name属性,才返回TRUE。

扩展资料

R语言强大的功能:

1、R的标记语言可以制作可重复生成的Word和Powerpoint文档

R语言中的rmarkdown包可以制作可重复生成的Word文档和Powerpoint幻灯片,而这只需要改变一行YAML的代码。

2、组建和运行一个可交互的网络应用只需要几行代码

几行R代码就可以生成一个可交互的网络应用。比方说如果使用R语言的flexdashboard包, 只需要36行代码,就可以生成一个可交互的动态报表,来探索BMI指数与全国健康营养检查样本结果的关联。

3、几行甚至一行R代码就可以支持网络应用的运行

另外一个很酷的功能是,通过rsconnect包,R语言还可以仅用一两行代码就支持网络应用的运行。这些应用既可以通过自己的服务器来支持,也可以用shinyapps.io这种云服务器。

4、通过使用R语言的dplyr/dbplyr,几乎各种数据库都可以连接

使用dbplyr包,用R语言连接各种数据库,无论是本地的还是远程的,都非常方便。这个功能使R语言用户可以不用担心底层的数据库,而独立地从主流数据库中抽取数据。R语言的bigrquery包还可以直接利用BigQuery和其他大规模数据存储。

我们在日常的数据分析过程中,经常要进行循环的操作。但是在R语言中,for循环的效率低下,如果是数据量比较大的情况下,可能会花费比较多的时间。因此,我们可以使用向量化操作来代替循环。向量化可以理解为高效的循环。

我们主要讲解基础包中的:

此函数经常被用于对矩阵的行或列进行指定目的的循环

• 可以被用于多个数组的循环

• 该函数作用于一行进行循环

• X 是一个数组

• MARGIN 参数是一个数字向量,在适用与矩阵时,1表示行,2表示列,也可以是列名

• FUN 是适用循环的函数

• ... 表示其他参数

使用之前我们学过的东西进行改进的话可以酱紫:

但是依然还是有缺陷,就是只能对一个分组变量,不能同时对多个变量进行

接下来我们讲下怎么弥补这个缺陷:

split 用于使某向量或对象分为指定数目的列表,指

定数目的组由因子列表确定

• X是一个向量或数据框

• F是一个因子或因子列表

• Drop表示空因子水平是否舍弃