Hola, buenos días:

Habitualmente transformo varias variables mediante la función lapply de la 
forma siguiente:

---------------
library (MASS); data(Aids2, package = "MASS");DADES<-Aids2
detach ("package:MASS", unload<-TRUE)
LN <- function (X) {
   X <- log (X)
   X
}
XVARL <- c ("diag", "death")
DADES [XVARL] <- lapply(DADES [XVARL], LN)
---------------

El problema con este código es que pierdo la variable original. Intento cambiar 
la variable original (añadiendo el sufijo «_LN» al nombre original) mediante el 
código:

---------------
LN <- function (X) {
   X <- log (X)
   X
}
XVARL <- c ("diag", "death")
DADES [[paste (deparse (substitute (XVARL)), "_LN", sep = "")]] <- lapply(DADES 
[XVARL], LN)
---------------

que, evidentemente, no funciona (el código es fruto de una importante empanada 
mental con R):

---------------
> DADES [[paste (deparse (substitute (XVARL)), "_LN", sep = "")]] <- 
> lapply(DADES [XVARL], LN) 
Error in `[[<-.data.frame`(`*tmp*`, paste(deparse(substitute(XVARL)), : 
replacement has 2 rows, data has 2843
---------------

Alguien me podría echar una mano para poder transformar las variables sin 
perder las originales. De momento lo hago creándolas previamente. Pero buscaba 
una forma de ahorrármelo.

Muchas gracias y saludos. Griera.

_______________________________________________
R-help-es mailing list
[email protected]
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a