r语言 - 创建具有不同"by"参数的序列向量



我有兴趣创建一个序列向量,所有序列从 0 到 1,但对 seq( ) 具有不同的"by"参数。

我从一个我希望用于"by"参数的向量开始:

x <- c(3,6,3,9,10)

我希望这是 seq( ) 函数的输入:

seq(0, 1, by = 1/(x-1))

因此,对于向量的前几个元素,它将是:

seq(0, 1, by = 1 / (3 - 1))
seq(0, 1, by = 1 / (6 -1))

产生矢量如下:

0.0 0.5 1.0
0.0 0.2 0.4 0.6 0.8 1.0

最终,我希望输出是一个长向量,包括所有这些不同长度的序列。 也许是循环的工作? 还是申请/申请?

sapply(1/(x-1), seq, from=0, to=1)
[[1]]
[1] 0.0 0.5 1.0
[[2]]
[1] 0.0 0.2 0.4 0.6 0.8 1.0
[[3]]
[1] 0.0 0.5 1.0
[[4]]
[1] 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000
[[5]]
 [1] 0.0000 0.1111 0.2222 0.3333 0.4444 0.5556 0.6667 0.7778 0.8889 1.0000

另一种方式:我使用seq.default,因为您需要矢量化by参数

x <- c(3,6,3,9,10)
vseq <- Vectorize(seq.default)
vseq(0, 1, by = 1/(x-1))
# [[1]]
# [1] 0.0 0.5 1.0
# 
# [[2]]
# [1] 0.0 0.2 0.4 0.6 0.8 1.0
# 
# [[3]]
# [1] 0.0 0.5 1.0
# 
# [[4]]
# [1] 0.000 0.125 0.250 0.375 0.500 0.625 0.750 0.875 1.000
# 
# [[5]]
# [1] 0.0000000 0.1111111 0.2222222 0.3333333 0.4444444 0.5555556 0.6666667 0.7777778
# [9] 0.8888889 1.0000000

下面是示例 x = 1000 的代码

vector_x <- c()
for(i in 1:1000){
  x <- seq(0, 1, by = 1/(i-1))
  vector_x <- c(vector_x, x)
}
vector_x

最新更新