Calcula la fórmula a partir de una cadena guardada en una variable.
Lo siento, pero estoy luchando con un problema bastante simple: una fórmula/una expresión como 1.28*10^2 se guarda como un carácter en un marco de datos. Ahora quiero convertir esta cadena en un valor numérico: esto debería dar como resultado “128”, pero no lo hace.
library(dplyr)
mydata <- data.frame(
formula = c("5.89*10^3", "1.28*10^2", "4.11*10^5")
)
mydata <- mydata %>%
dplyr::mutate(eval = eval(parse(text = formula)))
La variable “eval” debería contener los valores 5890, 128 y 411000 al final.
¿Alguien puede ayudarme a ver dónde está mi error? ¡Gracias!
davy.ai
El problema con el código es que las funciones
eval()
yparse()
no son adecuadas para convertir una cadena de caracteres que representa una expresión matemática, como “1.28*10^2”, en valores numéricos. En su lugar, podemos utilizar la funciónsapply()
junto con las funcionesgsub()
yas.numeric()
para lograr el resultado deseado.La función
gsub()
reemplaza el símbolo “^” con el símbolo “e” para que la cadena de caracteres en notación científica sea reconocible como un valor numérico por la funciónas.numeric()
. El resultado será un vector numérico con valores 5890, 128 y 411000.