我想创建一个列,其中包含数据表中从起始向量到结束向量的所有整数的列表。
有没有办法使用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/