Список смежности в R

У меня есть вопрос, связанный с этим post. Я не понимаю, что делает эта строка:

    col2=unlist(lapply(adjlist,"[",-1))

Я имею в виду, я знаю, что он превращает все столбцы, кроме первого, в один длинный столбец, который затем объединяется с col1, но я не понимаю, как это сделать, и я не хочу использовать код, который не понимаю.

Благодарю вас!


person Justyna    schedule 24.11.2015    source источник
comment
Я предлагаю вам создать и просмотреть промежуточный объект lapply(adjlist,"[",-1) и просмотреть файлы справки ?lapply, ?[ и ?unlist.   -  person Frank    schedule 24.11.2015
comment
Я знаю, что делают lapply и unlist, но я не понимаю, как "[", -1 превращает строки в столбцы. И да, я проверил справку, прежде чем опубликовать свой вопрос. Я могу предположить, что -1 предназначен для пропуска первого элемента в каждой строке.   -  person Justyna    schedule 24.11.2015
comment
Сделайте небольшой воспроизводимый пример, полностью содержащийся в этом посте, и, скорее всего, кто-то сможет помочь. (1) ?`[.data.frame` объясняет, что DF[i] выбирает столбцы; (2) data.frame представляет собой список столбцов, поэтому unlist будет делать то же, что и unlist, объединяя их в один вектор.   -  person Frank    schedule 24.11.2015
comment
Я все это понимаю - чего я не понимаю, так это этой конкретной части синтаксиса этой команды. Я не знаю, как лучше объяснить. Код, указанный в ссылке, работает отлично, но я не понимаю, почему и как. Я знаю, что df[i] выберет номер столбца i, но здесь у меня есть только левая скобка. Берет ли lapply(adjlist, "[", -1) каждую последующую строку adjlist и удаляет первый элемент, а затем unlist превращает его в длинный вектор?   -  person Justyna    schedule 24.11.2015
comment
Левая скобка — это имя используемой функции, даже в форме двойной скобки. "["(DF, 2:3), `[`(DF,2:3) и DF[2:3] делают одно и то же. Точно так же ( — это функция, а [[. Это объемное чтение, но я уверен, что это описано в основном документе по языку cran.r-project.org/doc/manuals/r-release/R-lang.html   -  person Frank    schedule 24.11.2015
comment
@Frank Я думаю, что на данный момент было бы более педагогично просто привести небольшой пример и объяснить, что -1 удаляет - в ответе. :)   -  person Roman Luštrik    schedule 25.11.2015
comment
@RomanLuštrik К сожалению, я думал, что это хорошая идея, но теперь я пошел, прочитал связанный вопрос и понял, что понятия не имею, что он делает (поскольку мне никогда не нужен был scan()). Оказывается, они действительно перебирают строки, а не список data.frames. В любом случае, я думаю, мы можем закрыть это, почему мой код не работает? или аналогичный, если только кто-то не хочет кропотливо сделать пример, похожий на связанный, и написать сопровождающий учебник.   -  person Frank    schedule 25.11.2015