r - 如何在R中初始化固定长度的向量

标签 r data-structures vector dataframe

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

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

最佳答案

你问这个问题很好,因为在将结果分配给长对象的 for 循环之前预先分配长向量通过不需要连续延长向量而变得更有效。

?vector

X <- vector(mode="character", length=10)
这将为您提供打印为两个相邻双引号的空字符串,但请注意值本身中没有双引号字符。这只是 print.default 的副作用显示值。它们可以按位置索引。字符数不会受到限制,因此如果您期望获得 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
从技术上讲,列表是 R 中的“向量”,因此这是使用 for 循环构建列表的推荐(甚至必要)实践:
obj <- list( length(inp_vec) )
for ( i in seq_along(inp_vec) ){
       obj[[i]] <- some_func( inp_vec[i] )
       }
@Tom 提醒我们,'mode' 的默认设置是合乎逻辑的,并且 R 有一组相当丰富的自动强制转换方法,尽管我发现他的建议 vector(,10)不如 logical(10) 清楚这是它的等价物。

关于r - 如何在R中初始化固定长度的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104774/

相关文章:

r - Shiny 应用程序在 Mac 上的 RStudio 中崩溃

r - 如何通过 ">"拆分作为 data.frame 导入的 FASTA 文件

c++ - 使用反向迭代器从 vector 中快速删除

R:按组和行迭代将数据帧拆分为列表

java - 将通用树转换为二叉树 - XML 解析器

algorithm - 红黑树在重新平衡自身时是否会修改其叶子从左到右的顺序?

algorithm - 高效计算 n 组的交集

c++ - 为什么字符串和 vector 是不同的类型?

c++ - 逐行读取输入并转换为 vector 并打印

r - 在 ggplot2 中;在这种情况下,如何将 x 轴移动到顶部,然后使用 coord_flip () 旋转轴?