Tengo curiosidad por saber si R puede usar su eval()
función para realizar cálculos proporcionados, por ejemplo, por una cadena.
Este es un caso común:
eval("5+5")
Sin embargo, en lugar de 10 obtengo:
[1] "5+5"
¿Alguna solución?
eval(parse(text = *))
soluciones falsas.
QQ = c('11','12','13','21','22','23')
es decir: QQ = c (..., 'ij', ..) con i, j variando en un rango que puede variar de una ejecución a otra. Para este y otros ejemplos similares, puedo escribir el script como paste( "QQ = c('", paste(rep(1:2,each=3),1:3, sep="", collapse="','"), "')",sep="")
, y la opción eval(parse(text=...))
crea el vector QQ en el entorno de trabajo según el script. ¿Cuál sería la forma correcta de codificador R para hacer esto, si no fuera con "text = ..."?
string
? La respuesta de Martin Mächler debería merecer muchos más votos a favor.