将包含随机数的列表的后续数字添加到后续索引

Adding the subsequent numbers of list containing random numbers, to the subsequent indices

我有一个包含一些随机数的列表。我想为每个随机数添加以下两个数字,并将它们添加到列表中的后续索引,而不使用 for 循环。

所以,假设我有这个列表:v <- c(238,1002,569,432,6,1284) 那么我想要的输出是: v <- c(238,239,240,1002,1003,1004,569,570,571,432,433,434,6,7,8,1284,1285,1286)

我对 r 还是很陌生,所以我真的不知道我在做什么,但我已经尝试了几个小时但没有结果..我有,使用 for 循环让它工作,但我知道 r 对循环不太满意,所以我真的需要以某种方式对其进行矢量化。

有谁知道如何有效地将其实现到我的 r 代码中?

你可以只用outer来计算外和:

res <- outer(0:2, v, "+")
#     [,1] [,2] [,3] [,4] [,5] [,6]
#[1,]  238 1002  569  432    6 1284
#[2,]  239 1003  570  433    7 1285
#[3,]  240 1004  571  434    8 1286

然后您可以将生成的矩阵转换为向量:

res <- as.vector(res)
#[1]  238  239  240 1002 1003 1004  569  570  571  432  433  434    6    7    8 1284 1285 1286

注意 matrices are "column-major" 在 R.