Na przykładową listę możesz po prostu zrobić:
unlist(x)[ c(TRUE,FALSE) ]
ale to zależy od tego, czy każda podlista ma dokładnie 2 elementy.
Jeśli istnieje różna liczba elementów, możesz najpierw sapply
obliczyć długości, a następnie obliczyć odpowiadające im pozycje pierwszego elementu (zobacz cumsum
), a następnie wybrać te wartości z unlist
listy ed. Ale do tego czasu przyjęta odpowiedź jest prawdopodobnie znacznie prostsza.
Jeśli wszystkie listy podrzędne mają tę samą długość (ale mogą różnić się od 2), możesz zrobić coś takiego:
do.call( rbind, x)[,1]
lub jakiś inny rzut na wspólny obiekt. Ale wątpię, czy byłoby to tak skuteczne, jak to lapply
podejście.