假设我有一个向量,
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]
对不起,太复杂了:)
这是您想要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
也许下面的基本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