[R-es] Pasar un listado de variables como argumento de una función

Griera griera en yandex.com
Lun Jul 6 21:59:50 CEST 2015


Hola:

Quiero que una función realice una serie de cálculos pero eliminando las variables que no interesan (diferentes según e fichero a analizar). Intento pasar esta lista como argumento con un c("VAR1", "VAR2", etc), pero no lo consigo. Un ejemplo seria:

DATOS <- data.frame(SE=c("M", "H", "M", "M", "H"),
                    EDAD=c(50, 60, 20, 18, 30),
                    GRP_S=c("B", "0", "B", "A", "B"))
DES = function(XDATOS, XDROP=F)
	{
	print(names(XDATOS))
	DATOS_S <- subset(XDATOS, select = -c(XDROP))
	}

Sin "" da el error:

> DES(DATOS, c(EDAD, GRP_S))
[1] "SE"    "EDAD"  "GRP_S"
Error in print(XDROP) : object 'EDAD' not found

Con "" da el error:

> DES(DATOS, c("EDAD", "GRP_S"))
[1] "SE"    "EDAD"  "GRP_S"
[1] "EDAD"  "GRP_S"
Error in -c(XDROP) : invalid argument to unary operator

Alguien me puede echar una mano. Estoy bien perdido. 

Gracias y saludos!



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