Hola, Puedes hacerlo de esta otra forma:
#----------------- DES = function(XDATOS, XDROP) { #print(names(XDATOS)) #print(XDROP) DATOS_S <- XDATOS[, setdiff(names(XDATOS), XDROP) ] return(DATOS_S) } DES(DATOS, c("EDAD", "GRP_S")) #----------------- Saludos, Carlos Ortega www.qualityexcellence.es El 6 de julio de 2015, 21:59, Griera <gri...@yandex.com> escribió: > 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! > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es > -- Saludos, Carlos Ortega www.qualityexcellence.es [[alternative HTML version deleted]] _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es