简化维护输入和输出之间的一一对应关系,这意味着x
的每个元素必须包含一个单元素向量或one-row 数据帧。如果您不想保持这种对应关系,那么您可能需要 list_c()
/list_rbind()
或 list_flatten()
。
参数
- x
-
一个列表。
- ...
-
这些点用于将来的扩展,并且必须为空。
- strict
-
如果简化失败会发生什么?如果是
TRUE
,则会出错。如果未提供FALSE
和ptype
,则将原样返回x
。 - ptype
-
一个可选的原型,以确保输出类型始终相同。
例子
list_simplify(list(1, 2, 3))
#> [1] 1 2 3
# Only works when vectors are length one and have compatible types:
try(list_simplify(list(1, 2, 1:3)))
#> Error in list_simplify(list(1, 2, 1:3)) :
#> `x[[3]]` must have size 1, not size 3.
try(list_simplify(list(1, 2, "x")))
#> Error in list_simplify(list(1, 2, "x")) :
#> Can't combine `<list>[[1]]` <double> and `<list>[[3]]` <character>.
# Unless you strict = FALSE, in which case you get the input back:
list_simplify(list(1, 2, 1:3), strict = FALSE)
#> [[1]]
#> [1] 1
#>
#> [[2]]
#> [1] 2
#>
#> [[3]]
#> [1] 1 2 3
#>
list_simplify(list(1, 2, "x"), strict = FALSE)
#> [[1]]
#> [1] 1
#>
#> [[2]]
#> [1] 2
#>
#> [[3]]
#> [1] "x"
#>
相关用法
- R purrr list_transpose 转置列表
- R purrr list_flatten 压平列表
- R purrr list_c 将列表元素组合成单个数据结构
- R purrr list_assign 修改列表
- R purrr lmap 将函数应用于列表的列表元素
- R purrr accumulate 累积向量缩减的中间结果
- R purrr imap 将函数应用于向量的每个元素及其索引
- R purrr as_vector 将列表强制转换为向量
- R purrr map_if 有条件地将函数应用于向量的每个元素
- R purrr map2 映射两个输入
- R purrr array-coercion 强制数组列出
- R purrr auto_browse 包装一个函数,以便在出错时自动 browser()
- R purrr pluck 安全地获取或设置嵌套数据结构深处的元素
- R purrr insistently 将函数转换为等待,然后在错误后重试
- R purrr map_depth 在给定深度映射/修改元素
- R purrr rerun 多次重新运行表达式
- R purrr quietly 包装一个函数来捕获副作用
- R purrr pmap 同时映射多个输入(“并行”)
- R purrr possibly 包装函数以返回值而不是错误
- R purrr head_while 查找全部满足谓词的头/尾。
- R purrr rbernoulli 从伯努利分布生成随机样本
- R purrr rate-helpers 创建延迟率设置
- R purrr keep_at 根据元素的名称/位置保留/丢弃元素
- R purrr keep 根据元素的值保留/丢弃元素
- R purrr transpose 转置列表。
注:本文由纯净天空筛选整理自Hadley Wickham等大神的英文原创作品 Simplify a list to an atomic or S3 vector。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。