Как я могу напечатать несколько последовательностей с разной длиной. Out в Rstudio - PullRequest
0 голосов
/ 14 февраля 2020

Допустим, у меня есть вектор,

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]

Извините за чрезмерное усложнение:)

Ответы [ 2 ]

1 голос
/ 15 февраля 2020

Это то, что вы хотели, чтобы х выглядел?

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 голосов
/ 15 февраля 2020

Может быть, следующий базовый код 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
...