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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。