[R-es] Expresión en un objeto
Griera
gr|er@ @end|ng |rom y@ndex@com
Jue Ago 10 19:35:45 CEST 2023
Hola a todos:
Se me ha planteado un problema que no está ligado a ningún problema
concreto. Es más teórico.
Supongamos que tenemos tres variables:
V1 <- c (47, 71, 41, 23, 83, 152, 82, 8, 160, 18)
V2a <- c (NA, 36, 15, 5, 56, 18, NA, 5, NA, 5)
V2b <- c (37, NA, 15, NA, NA, NA, 90, NA, 161, NA)
Supongamos que tengo la expresión (que no puedo asignarlo a ninguna variable):
(ifelse (is.na (V2a) & ! is.na (V2b), V2b, V2a))
Supongamos que tengo que utilizar esta expresión dos o más veces y no
puedo utilizar ni un xapply () ni un bucle. Por ejemplo:
V3 <- (((ifelse (is.na (V2a) & ! is.na (V2b), V2b, V2a)) - V1)/V1)*100
V4 <- ifelse (! is.na ((((ifelse (is.na (V2a) & ! is.na (V2b),
V2b, V2a))-V1)/V1)*100), ifelse ((((ifelse (is.na (V2a) & ! is.na
(V2b), V2b, V2a))-V1)/V1)*100 > 0, "1", "0"), NA)
Hay alguna forma de almacenar la expresión "(ifelse (is.na (V2a) & !
is.na (V2b), V2b, V2a))" en un objeto y utilizar el nombre del objeto
en las ordenes (por ejemplo, con una hipotética función xfunc ()). Por
ejemplo:
ORD <- "(ifelse (is.na (V2a) & ! is.na (V2b), V2b, V2a))"
V3 <- ((xfunc (ORD) - V1)/V1)*100
V4 <- ifelse (! is.na (((xfunc (ORD)-V1)/V1)*100), ifelse
(((xfunc (ORD)-V1)/V1)*100 > 0, "1", "0"), NA)
El ejemnplo és absurdo, pero solo lo presento como un hipotético ejercicio.
Muchas gracias por la ayuda.
Más información sobre la lista de distribución R-help-es