vector
位於 base
包(package)。 說明
A 向量在R是一個原子向量,即原子類型之一,請參閱“詳細信息”,或者是類型 (typeof
) 或模式list
或者expression
.
vector
生成給定長度和模式的 ‘simple’ 向量,其中 ‘simple’ 向量沒有屬性,即滿足 is.null(attributes(.))
。
as.vector
是一個泛型,嘗試將其參數強製轉換為 mode
模式的向量(默認值是強製轉換為最方便的向量模式):如果結果是原子的 ( is.atomic
),則所有屬性都將被刪除。對於mode="any"
,請參閱“詳細信息”。
如果 x
是指定模式的向量,除了名稱之外沒有任何屬性,is.vector(x)
返回TRUE
。對於mode="any"
,請參閱“詳細信息”。
用法
vector(mode = "logical", length = 0)
as.vector(x, mode = "any")
is.vector(x, mode = "any")
參數
mode |
命名原子模式的字符串或 |
length |
指定所需長度的非負整數。對於 long vector ,即 |
x |
一個R對象。 |
細節
原子模式為 "logical"
、 "integer"
、 "numeric"
(同義詞 "double"
)、 "complex"
、 "character"
和 "raw"
。
如果 mode = "any"
, is.vector
可能會返回 TRUE
對於原子模式, list
和 expression
。對於任何mode
,如果x
具有除名稱之外的任何屬性,它將返回FALSE
。 (這與 S 不兼容。)另一方麵,as.vector
刪除所有屬性,包括原子模式結果的名稱。
為了mode = "any"
和原子向量x
,as.vector(x)
全部剝離attributes
(包括names
),返回一個簡單的原子向量。
然而,當x
是類型"list"
或者"expression"
,as.vector(x)
當前返回參數x
不變,除非有as.vector
方法用於class(x)
.
請注意,因子不是向量;而是向量。 is.vector
返回 FALSE
,而 as.vector
將因子轉換為 mode = "any"
的字符向量。
值
對於 vector
,給定長度和模式的向量。邏輯向量元素初始化為 FALSE
,數值向量元素初始化為 0
,字符向量元素初始化為 ""
,原始向量元素初始化為 nul
字節,列表/表達式元素初始化為 NULL
。
對於 as.vector
,一個向量(原子或列表或表達式類型)。如果結果是原子模式,則所有屬性都會從結果中刪除,但對於列表或表達式結果通常不會。默認方法處理 24 種輸入類型和 12 個 type
值:大多數強製轉換的詳細信息均未記錄,並且可能會發生更改。
對於 is.vector
、 TRUE
或 FALSE
。 is.vector(x, mode = "numeric")
對於 "integer"
或 "double"
類型的向量可以為 true,而 is.vector(x, mode =
"double")
隻能對於 "double"
類型的向量為 true。
as.vector()
的方法
as.vector
方法的編寫者需要注意遵循默認方法的約定。尤其
-
參數
mode
可以是"any"
、任何原子模式、"list"
、"expression"
、"symbol"
、"pairlist"
或別名"double"
和"name"
之一。 -
返回值應該是適當的模式。對於
mode = "any"
,這意味著原子向量或列表或表達式。 -
應適當對待屬性:特別是當結果是原子向量時,不應有屬性,甚至名稱也不應存在。
-
is.vector(as.vector(x, m), m)
對於任何模式m
都應該為 true,包括默認的"any"
。目前這還沒有實現R當
m == "any"
和x
是類型list
或者expression
除了屬性names
— 通常是(S3 或 S4)對象的情況(參見is.object
) 是內部列表。
注意
as.vector
和 is.vector
與 methods
包中的正式類 "vector"
的含義截然不同,因此 as(x, "vector")
和 is(x, "vector")
。
請注意,如果 is.vector(x)
為 true,則 as.vector(x)
不一定是空操作:任何名稱都將從原子向量中刪除。
非向量 mode
s "symbol"
(同義詞 "name"
)和 "pairlist"
已被接受,但長期以來一直未記錄:它們用於實現 as.name
和 as.pairlist
,並且最好直接使用這些函數。這裏的所有說明都不適用於那些mode
:請參閱首選形式的幫助。
例子
df <- data.frame(x = 1:3, y = 5:7)
## Error:
try(as.vector(data.frame(x = 1:3, y = 5:7), mode = "numeric"))
x <- c(a = 1, b = 2)
is.vector(x)
as.vector(x)
all.equal(x, as.vector(x)) ## FALSE
###-- All the following are TRUE:
is.list(df)
! is.vector(df)
! is.vector(df, mode = "list")
is.vector(list(), mode = "list")
參考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
c
、is.numeric
、is.list
等
相關用法
- R validUTF8 檢查字符向量是否有效編碼
- R file.path 構造文件路徑
- R grep 模式匹配和替換
- R getwd 獲取或設置工作目錄
- 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 icuSetCollate 按 ICU 設置整理
- R search 給出 R 對象的搜索路徑
- R Defunct 將對象標記為已失效
- R gzcon 通過連接(解)壓縮 I/O
- R readRenviron 從文件設置環境變量
- R Sys.localeconv 查找當前語言環境中數字和貨幣表示形式的詳細信息
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Vectors - Creation, Coercion, etc。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。