簡化維護輸入和輸出之間的一一對應關係,這意味著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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。