decidí agregue esta solución también porque encontré que dput()
no funcionaba para lo que estaba tratando de hacer. Tengo una aplicación shiny
que usa knitr
para hacer informes basados en la sesión del usuario, y uso knit_expand()
antes de renderizar mi .Rmd para portar los parámetros del usuario desde la sesión brillante al .Rmd.
Sin entrar en demasiados detalles, tengo la necesidad de portar vectores "como están", porque se escribirán en líneas de código en el .Rmd que alguien ejecutará. En este caso, dput()
no funcionó porque la salida solo se escupe en la consola, y el método dump()
funciona pero no quería escribir nuevos archivos cada vez y eliminarlos.
Puede haber una manera mejor, pero escribí una función que devuelve un carácter objeto del vector "tal cual". Maneja vectores numéricos y de caracteres (arroja comillas alrededor de cada miembro del vector de caracteres). También maneja entradas individuales y simplemente las devuelve tal como son. No es bonito, y estoy seguro de que hay formas más eficientes de escribirlo, pero funciona perfectamente para mis necesidades. Pensé que agregaría esta solución a la refriega.
printVecAsis <- function(x) {
ifelse(length(x) == 1, x,
ifelse(is.character(x), paste0("c(", paste(sapply(x, function(a) paste0("\'",a,"\'")), collapse=", "), ")"),
paste0("c(", paste(x, collapse=", "), ")")))}
Eche un vistazo a 'deparse (x)'. –