[R-es] Conservar el nombre de la variable entre varias funciones

Griera griera en yandex.com
Lun Jul 13 15:33:46 CEST 2015


Hola:

Con esto del R me da la impresión que avanzo un paso y retrocedo dos!

El caso es que tengo una "cascada de funciones", para realizar un análisis descriptivo "automático" en función del tipo de variable. Y en los resultados, en lugar de aparecer el nombre de la variable, aparece el nombre del argumento. Esto ocurre tanto si utilizo o no la función get().

Un ejemplo resumen reproducible:

=============================
# Con la función get()
A <- function (XVD, XVI, XDATOS) 
  {
    attach(XDATOS)
    B(XVD, XVI)
    detach(XDATOS)
  }

B <- function (XVD, XVI)
  {
    TBL = xtabs(~get(XVD) + get(XVI))
    print(TBL)
    print(summary(TBL))
  }

  
DATOS <- data.frame(SE=c("M", "H", "M", "M", "H"),
                    EDAD=c(50, 60, 20, 18, 30),
                    GRP=c("B", "B", "A", "A", "B"))
A("GRP", "SE", DATOS)

La tabla que imprime és:

        get(XVI)
get(XVD) H M
       A 0 2
       B 2 1



Sin la función get():
=============================
# Sin la función get()
A <- function (XVD, XVI, XDATOS) 
  {
    attach(XDATOS)
    B(XVD, XVI)
    detach(XDATOS)
  }

B <- function (XVD, XVI)
  {
    TBL = xtabs(~XVD + XVI)
    print(TBL)
    print(summary(TBL))
  }
A(GRP, SE, DATOS)

La tabla que imprime és:
> A(GRP, SE, DATOS)
   XVI
XVD H M
  A 0 2
  B 2 1
=============================


Alguien puede orienter-me como solucionarlo y que en los resultados aperzca el nombre de la variable en lugar del argumento de la función?

Muchas gracias y saludos.



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