[R-es] Loop for: mostrar el nombre de la variables

Griera griera en yandex.com
Mar Jun 30 10:06:42 CEST 2015


Buenos días:

Después de más de 20 años en SAS, ahora igual me toca trabajar en R. Y la transición es muy dura: la "lógica" de los dos lenguajes es, para mi, totalmente diferente. Disculpen si lo que pregunto es una obviedad, pero llevo todo el día con esto y no logro encontrar la respuesta adecuada con google.

Estoy intentado crear una función que realice una descriptiva simple de cualquier data frame. Simplificando es (en la función real definitiva la descriptiva es más completa):

***************************
# Data.frame para pruebas:
TBL <- data.frame(SE=sample(c("H","M"),10,TRUE),
                  ED=(rnorm(10)+2.5)*20)
# Función DES:
DES = function(XDADES)
  {
    attach(XDADES)
    for (XVARNUM in XDADES)
      {  
      if(is.numeric(XVARNUM))
	{
	print (c("Var Num: ", mean(XVARNUM)))
	}
      else if(is.factor(XVARNUM))
	{
	print (c("Var factor: "))
	XOUT <- as.data.frame(table(XVARNUM))
	print(XOUT <- transform(XOUT, cumFreq = cumsum(Freq), relative = prop.table(Freq)))
	}
      else
	{
	print ("Var desc")
	} 
      }    
    detach(XDADES)
  }

DES(XDADES=TBL)
***************************

Tengo dos problemas:

1. En:
      print (c("Var Num: ", mean(XVARNUM)))
   no consigo que imprima el nombre de la variable ED después de
   "Var Num:". En Internet parece que algunos sugieren utilizar:
       deparse(substitute(name(XVARNUM))))
   pero no me funciona.

2. El resultando de mostrar las frecuencias de la variable SE es:

[1] "Var factor: "
  XVARNUM Freq cumFreq relative
1       H    5       5      0.5
2       M    5      10      0.5

Como podría substituir XVARNUM por el nombre de la variable analizada (SE)?

Muchas gracias por la atención y la ayuda y saludos.



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