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 sapplyobliczyć długości, a następnie obliczyć odpowiadające im pozycje pierwszego elementu (zobacz cumsum), a następnie wybrać te wartości z unlistlisty 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 lapplypodejście.