Per il tuo elenco di esempio puoi semplicemente fare:
unlist(x)[ c(TRUE,FALSE) ]
ma questo dipende dal fatto che ogni sottolista abbia esattamente 2 elementi.
Se ci sono diversi numeri di elementi, puoi prima fare un sapply
per calcolare le lunghezze, quindi calcolare le corrispondenti posizioni del primo elemento (vedi cumsum
), quindi selezionare quei valori dall'elenco unlist
ed. Ma a quel punto la risposta accettata è probabilmente molto più semplice.
Se tutte le sottoliste hanno la stessa lunghezza (ma potrebbero essere diverse da 2), potresti fare qualcosa del tipo:
do.call( rbind, x)[,1]
o qualche altro cast su un oggetto comune. Ma dubito che questo sarebbe efficiente quanto l' lapply
approccio.