Создайте последовательность с помощью R-функции

#r #function

#r #функция

Вопрос:

Мне нужно создать следующую последовательность:

 > A
1, 2, 3, 11, 12, 13, 21, 22, 23, 31, 32, 33

> B
-1, 2, -3, 4, -5, 6, -7, 8, -9, 10
  

Я пытался использовать функцию seq() следующим образом:

 seq(1:3, 31:33, by = 10)
  

Но это позволяет вводить только 1 число в «от» и «до»

Может быть, кто-то знает, как использовать эту или другие функции для создания заданной последовательности. Заранее благодарю вас.

Ответ №1:

Вы можете использовать :

 A <- c(sapply(seq(0, 30, 10), ` `, 1:3))
A
#[1]  1  2  3 11 12 13 21 22 23 31 32 33

B <- 1:10 * c(-1, 1)
B
#[1] -1  2 -3  4 -5  6 -7  8 -9 10
  

Ответ №2:

Вот один из способов добраться до A: A <- rep(1:3, 3) rep(c(0, 10, 20), each=3) или обобщить до n A <- rep(1:n, n) rep(seq(0, by=10, length.out=n), each=n)

Для B я не могу найти ничего по-настоящему элегантного: B <- 1:10 * (-1)^(1:10 %% 2)

Это лучшее, что у меня есть