Hola: Gracias de nuevo por la ayuda!
La solución, como no, funciona. Pero yo quería alguna cosa más flexible y universal que le pudiera pasar como parámetro diferentes opciones de incluir i excluir variables. Si estuviera fuera de la función 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"), HTA = c("N", "S", "N", "N", "N")) # Excluir DATOS_S <- subset(DATOS, select = -c(EDAD, GRP_S)) names(DATOS_S) DATOS_S <- subset(DATOS, select = -c(SE, EDAD:GRP_S)) names(DATOS_S) # Incluir DATOS_S <- subset(DATOS, select = c(SE, GRP_S:HTA)) names(DATOS_S) ===================== Pero cuando le paso a la función -c(EDAD, GRP_S)) o c(SE, GRP_S:HTA)), no funciona. Existe alguna solución que pueda incorporar esta flexibilidad? Gracias Carlos y saludos. On Tue, 7 Jul 2015 00:26:54 +0200 Carlos Ortega <c...@qualityexcellence.es> wrote: > 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 _______________________________________________ R-help-es mailing list R-help-es@r-project.org https://stat.ethz.ch/mailman/listinfo/r-help-es