Comentar las multilíneas en R

Gustavo du Mortier 16 febrero 2024
  1. Utilice scan() para insertar texto arbitrario
  2. Usar una función para comentar multilíneas en R
Comentar las multilíneas en R

Cuando quiera comentar varias líneas de código en R, la forma convencional de hacerlo sería colocar un carácter # al principio de cada una de las líneas que necesite comentar, ya que R no soporta comentarios multilínea.

Realizar esa tarea está bien si el número de líneas de código a comentar es pequeño. Pero si necesita comentar un bloque de código realmente largo, podría ser útil un editor de código especializado capaz de añadir un carácter # a cada línea de un bloque seleccionado. En RStudio, puedes hacerlo utilizando la combinación de teclas Ctrl+Shift+C en Windows, o Command+Shift+C en OSX. La documentación de RStudio ofrece más información sobre los atajos de teclado.

Notepad++ reconoce el código R y también permite comentar el código con el atajo Ctrl+Q o Comando+Q. Si utiliza Emacs, también puede utilizar M-x comment-region. Para revertir la acción, utilice M-x uncomment region.

Utilice scan() para insertar texto arbitrario

También puede utilizar la función scan() para insertar cualquier texto arbitrario dentro de su código, después de lo cual necesita utilizar rm() para eliminar el texto de la memoria. Asegúrese de que la última línea del código comentado antes de rm() debe estar en blanco. Dado que scan() carga el texto en una variable, es necesario mantener el código o texto comentado dentro de unos límites de tamaño razonables.

A continuación se muestra cómo puede utilizar este método.

comments <- scan(what="character")
Place your comments here
You can place code also:
some_data <- 1:1000
Just leave the last line blank.

rm(comments)

Usar una función para comentar multilíneas en R

La siguiente función FormatComment toma el texto del portapapeles y lo formatea con un símbolo # al principio de cada línea. Así que si estás usando un editor de texto incapaz de comentar bloques de código automáticamente, puedes obtener el mismo resultado copiando el código en el portapapeles y llamando a la función FormatComment desde la consola para obtener una versión comentada del mismo. A continuación, puedes sustituir el bloque de código original por el comentado.

FormatComment<-function() {
    y <- as.list(readClipboard())
    spacer <- function(x) paste("#", paste("   ", collapse=""), x, sep="")
    z <- sapply(y, spacer)
    zz <- as.matrix(as.data.frame(z))
    dimnames(zz) <- list(c(rep("", nrow(zz))), c(""))
    writeClipboard(noquote(zz), format = 1)
    return(noquote(zz))
}

Para probarlo, sólo tienes que copiar el texto que quieras incluir como comentario y llamar a la función FormatComment. Por ejemplo, si vas a convertir este texto en un comentario.

This is some text
I want to insert
as a comment
in the middle of
my R script.

Sólo tienes que seleccionar todo el bloque y copiarlo en el portapapeles. Luego llama a la función FormatComment así:

FormatComment()

Y obtendrás la siguiente resultado:

#   This is some text
#   I want to insert 
#   as a comment     
#   in the middle of 
#   my R script.