Как вы пишете последовательность как вектор? - PullRequest
0 голосов
/ 18 февраля 2020

У меня есть вектор "I", который мы можем принять, например, как (0,1,2,3 .....) до неизвестной длины. Я хочу создать вектор такой, что x ^ (I-1), чтобы он был похож на (0, x, x ^ 2 ...). Однако я не знаю, как написать этот код, и я пытался (x ^ I-1) в одиночку не работает.

Ответы [ 3 ]

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

Как прокомментировал ваш вопрос, R векторизовано. Это означает, что вы можете указать вектор y целых чисел, переменную x длины 1, а затем взять x до степени y через x^y:

y <- 0:10
x <- 2
x^y

который возвращает:

[1]    1    2    4    8   16   32   64  128  256  512 1024
0 голосов
/ 19 февраля 2020

Вы можете использовать seq(l) для построения вектора длины l от 1 до l в качестве степеней. Поскольку вы начинаете с 0, вы можете использовать seq(l)-1.

. Затем вы выбираете значение x и генерируете нужный вектор с помощью

x**(seq(l)-1)
* 1012. * Если у вас есть x и l в качестве переменных, вы можете определить свой собственный генератор последовательностей, как показано ниже
vgen <- function(x,l)  x**(seq(l)-1)

и использовать его как

> vgen(3,7)
[1]   1   3   9  27  81 243 729
0 голосов
/ 19 февраля 2020

EDIT *** Прочтите комментарии r2evan , чтобы понять, почему это не рекомендуемое решение.

Это возьмет вектор z и передаст его в функцию для создания результирующего вектора. Просто настройте значение x (в данном случае, 2)

z <- c(1:5)

new_vector <- sapply(z, function(y) 2 ^ y)

Тогда выходные значения в новом векторе будут x ^ 0, x ^ 1, x ^ 2, x ^ 3 ... и др c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...