[R-es] Filtrar columnas a partir de una lista

Fernando Macedo fermace en gmail.com
Vie Mar 28 21:20:05 CET 2014


Buenas a todos, tenía este problema y no soy capaz de encontrar la 
solución, aunque me imagino que será una tontería.

Mi intención es filtrar un marco de datos pero no por filas sino por 
columnas partiendo de una lista previa.

Por ejemplo el filtro por filas podría ser de este tipo

subset(x, x$ID%in%z$ID2==T)

así logro facilmente filtrar datos por filas de otro marco de datos.

Pero eso mismo quiero hacerlo por columnas.

Les paso un ejemplo de lo que quiero hacer:
###############

S1=1:10
f3=23:32
s5=11:20
R4=34:43
# El archivo de datos
data=data.frame(ID=LETTERS[1:10],S1,f3,s5,R4)

# Archivo del cual voy a filtrar
filtro=data.frame(Muestra=c("S1","s5"), LoQueSea=c(2,3))

# Como deberia quedar
final=data[,-c(2,4)]

######################

Podría hacer un t(data) y filtrarlo como en filas pero usando rownames 
en vez de una variable, pero el problema es que se tratan de por ejemplo 
150 variables por 600000 filas, por lo que intenté pero descarte la 
opción pues casi se me cuelga la maquina (Ubuntu 13.10, i5, 4G ram).

Supongo que habrá una función que estoy pasando por alto pero no he 
logrado encontrarla.
Espero poder haberme explicado.
Saludos y gracias de antemano.

Fernando



Más información sobre la lista de distribución R-help-es