Включить список (ы) в список - PullRequest
0 голосов
/ 05 декабря 2018

Я пытаюсь воссоздать список tohave, но использую переменную helpers.
Зная, что Я не знаю длины вспомогательных переменных.

# The list I want to create
tohave <- list(
    list(var1 = "A", var2 = 1),
    list(var1 = "B", var2 = 2),
    list(var1 = "C", var2 = 3),
    list(var1 = "D", var2 = 4),
    list(var1 = "E", var2 = 5),
    list(var1 = "F", var2 = 6),
    list(var1 = "G", var2 = 7),
    list(var1 = "H", var2 = 8),
    list(var1 = "I", var2 = 9),
    list(var1 = "J", var2 = 10)
)

# 'Helpers' variables I want to use to recreate tohave
helper1 <- list(
    list(var1 = "B", var2 = 2),
    list(var1 = "C", var2 = 3)
)

helper2 <- list(
    list(var1 = "H", var2 = 8),
    list(var1 = "I", var2 = 9)
)

tohave2 <- list(
    list(var1 = "A", var2 = 1),
    helper1,
    list(var1 = "D", var2 = 4),
    list(var1 = "E", var2 = 5),
    list(var1 = "F", var2 = 6),
    list(var1 = "G", var2 = 7),
    helper2,
    list(var1 = "J", var2 = 10)
)

В конце мне нужно воссоздать именно переменную tohave

Ответы [ 2 ]

0 голосов
/ 05 декабря 2018

Третий вариант с использованием append

tohave2 <- append(x = tohave2, values = helper1, after = 1)
tohave2 <- append(x = tohave2, values = helper2, after = 7)
identical(tohave, tohave2)
#[1] TRUE

data

tohave <- list(
  list(var1 = "A", var2 = 1),
  list(var1 = "B", var2 = 2),
  list(var1 = "C", var2 = 3),
  list(var1 = "D", var2 = 4),
  list(var1 = "E", var2 = 5),
  list(var1 = "F", var2 = 6),
  list(var1 = "G", var2 = 7),
  list(var1 = "H", var2 = 8),
  list(var1 = "I", var2 = 9),
  list(var1 = "J", var2 = 10)
)

# 'Helpers' variables I want to use to recreate tohave
helper1 <- list(
  list(var1 = "B", var2 = 2),
  list(var1 = "C", var2 = 3)
)

helper2 <- list(
  list(var1 = "H", var2 = 8),
  list(var1 = "I", var2 = 9)
)

tohave2 <- list(
  list(var1 = "A", var2 = 1),
  # helper1,
  list(var1 = "D", var2 = 4),
  list(var1 = "E", var2 = 5),
  list(var1 = "F", var2 = 6),
  list(var1 = "G", var2 = 7),
  # helper2,
  list(var1 = "J", var2 = 10)
)
0 голосов
/ 05 декабря 2018

Вы можете обернуть другие списки в списки, чтобы они соответствовали форме помощников, затем используйте ?c.

tohave2 <- c(
    list(list(var1 = "A", var2 = 1)),
    helper1,
    list(
        list(var1 = "D", var2 = 4),
        list(var1 = "E", var2 = 5),
        list(var1 = "F", var2 = 6),
        list(var1 = "G", var2 = 7)
    ),
    helper2,
    list(list(var1 = "J", var2 = 10))
    )

identical(tohave, tohave2)

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