如何在R中初始化具有固定长度的向量

ToB*_*eek 31 r vector dataframe data-structures

如何在R ??中初始化具有固定长度的向量

例如,我想要一个长度为10的字符向量?

42-*_*42- 44

?vector

X <- vector(mode="character", length=10)
Run Code Online (Sandbox Code Playgroud)

这将为您提供空字符串.它们可以按位置编制索引.字符数不受限制,因此如果您希望获得10个字符元素,您将会失望.

>  X[5] <- "character element in 5th position"

>  X
 [1] ""                                  ""                                 
 [3] ""                                  ""                                 
 [5] "character element in 5th position" ""                                 
 [7] ""                                  ""                                 
 [9] ""                                  "" 
>  nchar(X)
 [1]  0  0  0  0 33  0  0  0  0  0

> length(X)
[1] 10
Run Code Online (Sandbox Code Playgroud)

  • 或者只是'character(10)`. (12认同)
  • @ToBeGeek您是否考虑过阅读文档?`帮助( "矩阵")` (9认同)

Ale*_*der 21

如果要初始化数字值不为零的矢量,请使用 rep

n <- 10
v <- rep(0.05, n)
v
Run Code Online (Sandbox Code Playgroud)

这会给你:

[1] 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05 0.05
Run Code Online (Sandbox Code Playgroud)


von*_*njd 6

为了完整起见,您可以只采用所需的数据类型并添加带有元素数量的括号,如下所示:

x <- character(10)


Tom*_*Tom 5

最容易记住的初始化方法是

vec = vector(,10); #the same as "vec = vector(length = 10);"
Run Code Online (Sandbox Code Playgroud)

vec的值为:"[1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE"(逻辑模式)默认情况下.

但是在设置了一个字符值后,就像

vec[2] = 'abc'
Run Code Online (Sandbox Code Playgroud)

vec变为:"FALSE""abc""FALSE""FALSE""FALSE""FALSE""FALSE""FALSE""FALSE""FALSE"",这是字符模式.