У меня есть список в R длиной около 10 000 элементов. Скажем, я хочу выбрать только элементы 5, 7 и 9. Я не уверен, как бы это сделать без цикла for.
Я хочу сделать что-то подобное, mylist[[c(5,7,9]]
но это не работает. Я также пробовал эту lapply
функцию, но не смог заставить ее работать.
?"[["
: Наиболее важное различие между[
,[[
и$
в том , что[
можно выбрать более одного элемента , тогда как два других выбрать один элемент.Ответы:
mylist[c(5,7,9)]
должен это сделать.Вы хотите, чтобы подсписки возвращались как подсписки списка результатов; вы не используете
[[]]
(или, скорее, функция[[
) для этого - как Дейсон упоминает в комментариях,[[
захватывает элемент.источник
b
содержит 10 миллионов элементов.filter_bins
это список, в котором каждый элемент является индексом. поэтому, чтобы получать только элементыb
с одним и тем же индексом, у меняlapply(filter_bins, function(x) b[x, ])
так b [x,] возвращает только подмножество строк (где каждый элемент выбирается filter_bins) .. Я надеюсь, что это имеет смысл. Мой вопрос в том, что это очень медленно[[
. Но если вы хотите извлечь несколько элементов, то на самом деле вы[