94

我想知道,如何在 R 中创建数字零长度向量?

4

4 回答 4

112

如果您阅读vector(or numericor logicalor or characteror integeror double, 'raw' or complexetc ) 的帮助,那么您会看到它们都有一个length(orlength.out参数,默认为 0

所以

numeric()
logical()
character()
integer()
double()
raw()
complex() 
vector('numeric')
vector('character')
vector('integer')
vector('double')
vector('raw')
vector('complex')

全部返回适当原子模式的 0 长度向量。

# the following will also return objects with length 0
list()
expression()
vector('list')
vector('expression')
于 2012-09-27T06:09:26.870 回答
57

简单地:

x <- vector(mode="numeric", length=0)
于 2012-09-27T06:04:43.437 回答
4

假设您要创建一个长度为零的向量 x。现在让 v 是任何向量。

> v<-c(4,7,8)
> v
[1] 4 7 8
> x<-v[0]
> length(x)
[1] 0
于 2014-06-23T14:28:49.677 回答
3

这不是一个非常漂亮的答案,但它是我用来创建零长度向量的:

0[-1]     # numeric
""[-1]    # character
TRUE[-1]  # logical
0L[-1]    # integer

字面量是长度为 1 的向量,并从向量中[-1]删除第一个元素(在这种情况下是唯一的元素),留下零元素的向量。

作为奖励,如果你想要一个NA相应类型的:

0[NA]     # numeric
""[NA]    # character
TRUE[NA]  # logical
0L[NA]    # integer
于 2016-09-28T15:04:02.403 回答