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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。