R语言中unlist是干嘛用的?—R-China小编问题(29)

Python014

R语言中unlist是干嘛用的?—R-China小编问题(29),第1张

unlist()函数的作用,就是将list结构的数据,变成非list的数据,即将list数据变成字符串向量或者数字向量的形式。例如require(graphics)# create a plotting structurepts <- list(x=cars[,1], y=cars[,2])ulist(pts)大家可以再举例子说明

语句很简单,只有一句

d1 <- do.call(cbind, lapply(lapply(d, unlist), length<- , max(lengths(d))))

lapply(x,fun),lapply接收两个值,x为向量或列表,fun是方法,这个函数的意思是将fun方法作用到x的每个元素,返回一个与x相同长度的列表

unlist函数接收一个列表,unlist将其简化为一个包含列表中所有原子成分的向量

外面嵌套的那层lapply函数,是将每个向量元素的长度设定为最长的那个长度,缺失值用NA补齐

cbind是按列合并向量,如果两列数量不一样会自动重复短的那列

do.call函数与lapply函数功能类似,但有一点不一样

lapply()为列表中的每个元素应用一个给定的函数,所以会有几个函数调用。

do.call()将给定的函数作为一个整体应用于列表,所以只有一个函数调用。

详细差别见 http://www.dovov.com/rlapplydo-call.html

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

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

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

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

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

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

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