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

Carlos Ortega cof en qualityexcellence.es
Mar Jul 7 00:26:54 CEST 2015


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 <griera en 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 en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
>



-- 
Saludos,
Carlos Ortega
www.qualityexcellence.es

	[[alternative HTML version deleted]]



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