如何在Rstudio中打印具有不同length.out的多个序列

问题描述 投票:0回答:2

假设我有一个向量,

n <- c(1:100)

并且我想为上面的向量中n所取的每个值输出多个序列/向量,我试图做这样的事情:

x <- seq (0,5, length.out = n+1)
x <- x[-1]

我收到错误:警告信息:在seq.default(0,5,length.out = n + 1)中length.out参数使用的第一个元素

然后我想使用'x'进行以下计算:

fx <- dnorm(x, mean = 0 , sd = 4)

fx [1]将输出fx的第一个值,依此类推,直到fx [n]

对不起,太复杂了:)

r vector seq
2个回答
0
投票

这是您想要x看起来像什么?

x <- lapply(n, function(i) seq (0,5, length.out = i+1))
x
[[1]]
[1] 0 5

[[2]]
[1] 0.0 2.5 5.0

[[3]]
[1] 0.000000 1.666667 3.333333 5.000000

[[4]]
[1] 0.00 1.25 2.50 3.75 5.00

[[5]]
[1] 0 1 2 3 4 5

[[6]]
[1] 0.0000000 0.8333333 1.6666667 2.5000000 3.3333333 4.1666667 5.0000000

0
投票

也许下面的基本R代码可以帮助您

g <- Vectorize(function(k) seq (0,5, length.out = k+1)[-1])
x <- g(n)
fx <- sapply(x, dnorm, mean = 0,sd = 4)

诸如此类

> head(x)
[[1]]
[1] 5

[[2]]
[1] 2.5 5.0

[[3]]
[1] 1.666667 3.333333 5.000000

[[4]]
[1] 1.25 2.50 3.75 5.00

[[5]]
[1] 1 2 3 4 5

[[6]]
[1] 0.8333333 1.6666667 2.5000000 3.3333333 4.1666667 5.0000000

> head(fx)
[[1]]
[1] 0.04566227

[[2]]
[1] 0.08204024 0.04566227

[[3]]
[1] 0.09144309 0.07047797 0.04566227

[[4]]
[1] 0.09498265 0.08204024 0.06426848 0.04566227

[[5]]
[1] 0.09666703 0.08801633 0.07528436 0.06049268 0.04566227

[[6]]
[1] 0.09759449 0.09144309 0.08204024 0.07047797 0.05797360 0.04566227
© www.soinside.com 2019 - 2024. All rights reserved.