Griera-yandex
2017-11-20 11:46:11 UTC
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):
---------------
---------------
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.
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.