r - 使用 seq 矢量方式

标签 r data.table vectorization seq

我想创建一个列,其中包含数据表中从起始向量到结束向量的所有整数的列表。

有没有办法使用seq向量?像这样的东西:

 library(data.table)
 Startpoints <- seq(1,11,5)
 Endpoints <- seq(5,15,5)
 DT <- data.table(Startpoints, Endpoints)
 DT[, sequences := seq(Startpoints, Endpoints, 1)]

理想情况下,这会给我一个类似于 DT 中的专栏(到目前为止不考虑列表包装):

sequences
1 2 3 4 5
6  7  8  9 10
11 12 13 14 15

更普遍的问题是:我认为没有简单的方法可以将函数转换为它的矢量化版本? 我仍然不完全理解(向量)变量何时表示一行中的单个值以及用作函数参数时何时代表其完整向量。

最佳答案

您可以简单地使用 map :

DT[,sequences := Map(":", Startpoints, Endpoints)]
#   Startpoints Endpoints      sequences
#1:           1         5      1,2,3,4,5
#2:           6        10  6, 7, 8, 9,10
#3:          11        15 11,12,13,14,15

当您尝试将函数应用于多个向量的相应元素或在您的情况下的列时,它会派上用场。

关于r - 使用 seq 矢量方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41466992/

相关文章:

r - 增加离散图例的中断

r - 带双面卷的全外连接 (LOCF)

python - 在 Python 中向量化包含 cumsum() 和迭代切片的 for 循环

python - 是否可以对访问 numpy 数组中不同元素的函数进行矢量化?

matlab - 我有 N*M 矩阵和两个 1*M 行向量,我想对它们进行向量化数学运算

r - 正确配置 PI ODBC 客户端以便可以使用 RODBC

r - 如何刷新R中的打印缓冲区?

r - 如何获取具有给定数字的所有行

r - ddply 到 data.table 中的多个等效列

r - 通过 lapply 和正则表达式批量创建列到 R 的 data.table 中的列