Разделить векторный список с M элементами на 2 списка из N и MN элементов - PullRequest
1 голос
/ 26 сентября 2019

Я создал список векторов, аа, с 50 элементами.И мне нужно разделить aa на два векторных списка, называемых bb и cc.bb содержит первые 20 элементов aa, а cc содержит последние 30 элементов aa.Как мне это сделать?

Создание оригинального списка векторов

aa <- list (sample (1:50))
aa
#[[1]]
# [1] 29 30 39 45 17 11 43 14 24 34  3  1 28  2 21 23  6 31  5 27 44  7  4 46 49 22 33 38 50 36 15 48  8 16 25 42 13 41 47
#[40] 37 26 32 35  9 18 10 20 40 19 12

Извините, я знаю, что мой вопрос действительно простой.Может быть, это потому, что вопрос слишком прост и, следовательно, решение не легко найти в интернете.

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Мы можем использовать split, чтобы создать list из vectors

lst1 <-  split(aa[[1]], rep(1:2, c(20, 30)))

и извлечь вектор с помощью [[

lst[[1]]
lst1[[2]]

Его можно расширить долюбое количество разбиений (т.е. обобщенная версия), где нам просто нужно изменить rep

0 голосов
/ 26 сентября 2019

Так как я не мог ответить на прямой вопрос, добавив ответ.Сначала мы можем задать список с помощью [[, а затем выбрать отдельные элементы в нем с помощью [.

bb <- aa[[1]][1:20]
cc <- aa[[1]][21:50]

. Мы также можем использовать head и tail, чтобы выбрать первые 20 и последние 30 элементов.соответственно.

bb <- head(aa[[1]], 20)
cc <- tail(aa[[1]], 30)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...