2012-01-30 29 views
6

Tengo una lista de data.frames y me pregunto si hay una forma sencilla de indexación para obtener todas las terceras columnas de todos los data.frames. O todas las columnas nombradas x? Hablando R:Lista de indexación de data.frames: cómo obtener todas las columnas x-th?

lapply(names(mylist),function(x) mylist[[x]][,3]) 

¿Hay alguna manera de hacerlo con sólo la indexación, como milista [[]] [3]? (Que no funciona obviamente)

EDIT: ¿Y cómo se hace eso, cuando se quiere utilizar una función como NLEVELS en que, al igual

lapply(names(mylist),function(x) nlevels(mylist[[x]][,3])) 

teniendo en cuenta que la columna 3 es un factor.

Respuesta

9

Tal vez esto es un poco más fácil:

lapply(mylist, "[[", 3) 
lapply(mylist, "[[", name_of_column) 
+0

+1 hecho. no sabía que podría usar el segundo argumento de aplicar de esa manera. mancha. Pero, por otro lado, eso significa que no hay forma de usar la mera indexación. –

+0

¿Qué quiere decir con "mera indexación"? – kohske

+0

mylist [[]] [, 3], algo como esto si funcionara. Sin usar ningún bucle o aplicación. –

Cuestiones relacionadas