unlist
位于 base
包(package)。 说明
给定一个列表结构 x
, unlist
简化它以生成一个向量,其中包含 x
中出现的所有原子组件。
用法
unlist(x, recursive = TRUE, use.names = TRUE)
.unlist(x, recursive = TRUE, use.names = TRUE)
参数
x |
一个R对象,通常是列表或向量。 |
recursive |
合乎逻辑的。是否应该取消列出 |
use.names |
合乎逻辑的。名字应该被保留吗? |
细节
unlist
是通用的:您可以编写方法来处理特定类的对象,请参阅 InternalMethods 并注意,例如,relist
和 relistable
对象的 unlist
方法。
如果是 recursive = FALSE
,则该函数不会递归超出 x
中的第一级项目。
因子经过特殊处理。如果 x
的所有非列表元素都是 factor
(或有序因子)对象,则结果将是一个因子,其级别是元素级别集的并集,按照级别在级别集中出现的顺序元素(这意味着如果所有元素具有相同的水平集,即结果的水平集)。
.unlist()
是内部版本的接口,没有对因子进行这种特殊处理。
x
可以是原子向量,但 unlist
没有任何用处,甚至不删除名称。
默认情况下, unlist
尝试保留 x
中存在的命名信息。如果use.names = FALSE
,所有命名信息都会被删除。
在可能的情况下,列表元素在取消列出期间被强制为通用模式,因此结果通常最终作为字符向量。向量将被强制为层次结构中组件的最高类型 NULL < raw <逻辑< 整数 < 双 < 复杂 < 字符 < 列表 < 表达式:pairlists 被视为列表。
列表是一个(通用)向量,简化后的向量可能仍然是一个列表(并且可能保持不变)。列表的非向量元素(例如名称、公式和调用等语言元素)不会被强制,因此包含其中一个或多个的列表仍然是列表。 (取消列出 lm
拟合的效果是一个以单独残差作为组件的列表。)请注意,unlist(x)
现在对于非向量 x
也返回不变的 x
,而不是在这种情况下发出错误信号。
值
NULL
或用于保存列表组件的适当模式的表达式或向量。
在将pairlists强制转换为列表之后,输出类型由层次结构中组件的最高类型确定:NULL < raw <逻辑<整数<双精度<复杂<字符<列表<表达式。
例子
uop <- unlist(op <- options())
length(uop) > length(op) # *atomic* vectors are still split into parts
uop2 <- unlist(op, recursive = FALSE)
l.ex <- list(a = list(1:5, LETTERS[1:5]), b = "Z", c = NA)
unlist(l.ex, recursive = FALSE) # 'a' is still split ..
unlist(l.ex, recursive = TRUE)
l1 <- list(a = "a", b = 2, c = pi+2i)
unlist(l1) # a character vector
l2 <- list(a = "a", b = as.name("b"), c = pi+2i)
unlist(l2) # remains a list
ll <- list(as.name("sinc"), quote( a + b ), 1:10, letters, expression(1+x))
utils::str(ll)
for(x in ll)
stopifnot(identical(x, unlist(x)))
参考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
相关用法
- R unlink 删除文件和目录
- R unname 删除名称或暗名称
- R units 单位
- R unique 提取独特元素
- R userhooks 获取和设置加载、附加、分离和卸载钩子的函数
- R utf8Conversion 将整数向量与 UTF-8 编码的字符向量相互转换
- R file.path 构造文件路径
- R grep 模式匹配和替换
- R getwd 获取或设置工作目录
- R vector 向量 - 创建、强制等
- R lapply 对列表或向量应用函数
- R dump R 对象的文本表示
- R Sys.getenv 获取环境变量
- R rank 样本排名
- R getDLLRegisteredRoutines DLL 中 C/Fortran 例程的反射信息
- R pushBack 将文本推回连接
- R strsplit 分割字符向量的元素
- R seq.Date 生成规则的日期序列
- R invisible 将打印模式更改为不可见
- R noquote “无引号”字符串打印类
- R warning 警告信息
- R rapply 递归地将函数应用于列表
- R basename 操作文件路径
- R with 评估数据环境中的表达式
- R formals 访问和操纵形式参数
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Flatten Lists。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。