将包含随机数的列表的后续数字添加到后续索引
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.
我有一个包含一些随机数的列表。我想为每个随机数添加以下两个数字,并将它们添加到列表中的后续索引,而不使用 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.