2010-11-09 42 views
64

yo encontramos este old thread (desde hace más de un año), lo que explica cómo es que R no es compatible con una multilínea comentarios (como/* comentario */de PHP, por ejemplo).¿Es posible tener comentarios de varias líneas en R?

Me pregunto si esto se ha resuelto el año pasado, o si hay otras alternativas? (Por ejemplo, en notepad ++ con npptor, puede marcar un grupo de líneas y presionar ctrl + q para marcarlas como comentarios, ¿hay soluciones similares para otros IDE?)

+0

sería genial tener comentarios multilínea y también comentarios anidados o algún tipo de comentarios jerárquicos. De esa manera podría estar mejor doblado. – skan

+0

En RStudio puede comenzar su comentario con ** '# '' ** y las siguientes líneas se comentarán automáticamente. –

Respuesta

36

Puede, si lo desea, utilizar cadenas independientes para comentarios de varias líneas — Siempre he pensado que los bloques más bonitos que if (FALSE) { }. La cadena se evaluará y luego se descartará, de modo que mientras no sea la última línea de una función, no pasará nada.

"This function takes a value x, and does things and returns things that 
take several lines to explain" 
doEverythingOften <- function(x) { 
    # Non! Comment it out! We'll just do it once for now. 
    "if (x %in% 1:9) { 
      doTenEverythings() 
    }" 
    doEverythingOnce() 
    ... 
    return(list(
     everythingDone = TRUE, 
     howOftenDone = 1 
    )) 
} 

La principal limitación es que cuando se está comentando cosas fuera, usted tiene que mirar sus comillas: si usted tiene un tipo en el interior, que tendrá que utilizar otro tipo para el comentario; y si tiene algo así como "strings with 'postrophes" dentro de ese bloque, entonces no hay forma de que este método sea una buena idea. Pero aún queda el bloque if (FALSE).

La otra limitación, que tienen ambos métodos, es que solo puede usar dichos bloques en lugares donde una expresión sería sintácticamente válida, sin comentar partes de listas, por ejemplo.

En cuanto a qué hacer en qué IDE: Soy un usuario de Vim, y me parece NERD Commenter una herramienta excelente para comentar rápidamente o descomentar varias líneas. Muy fácil de usar, muy bien documentado.

Por último, en el símbolo R (al menos en Linux), está la preciosa Alt - Shift - # a comentar la línea actual. Es muy bueno poner una línea 'en espera', si estás trabajando en un trazador de líneas y luego te das cuenta de que necesitas un paso de preparación primero.

+0

Hola Esteis - con respecto al alt-shift- #, no funciona en Windows. Uso "Esc", y creo que funciona de manera similar a lo que describes. Gracias por todas las sugerencias. –

+0

En Linux, la funcionalidad para insertar comentarios de este tipo probablemente se deba a la biblioteca 'readline' de GNU. Si le funciona en R, probablemente le funcione en muchas otras aplicaciones, como 'bash'. –

9

No hay comentarios de varias líneas en R a partir de versión 2.12 y es poco probable que cambie. En la mayoría de los entornos, puede comentar bloques resaltando y alternar-comentar. En emacs, esto es 'M-x;'.

16

CTRL +SHIFT +C en Eclipse + Statet y rstudio.

+0

Este atajo de teclado también funciona en RStudio (3.4.1, Mac). – hsl

+0

@hsl gracias, agregué esto a mi respuesta. –

8
if(FALSE) { 
... 
} 

impide la ejecución de varias líneas. Sin embargo, estas líneas todavía tienen que ser sintácticamente correctas, es decir, no pueden ser comentarios en el sentido correcto. Aún así es útil para algunos casos.

+0

Este es mi esquema de comentarios multilínea de elección. – Greg

+0

gracias @caracal, muy útil si quieres omitir un bloque completo de código mientras que eres extremadamente simple de comentar si quieres procesar el mismo bloque otra vez '# if (FALSE) {' and '#}' – Gabriel123

4

Lamentablemente, todavía no hay varias líneas de comentarios en R.

Si su editor de texto compatible con la columna-mode, luego usarla para añadir un montón de #s a la vez. Si utiliza UltraEdit, Alt +c le pondrá en el modo de columna.

+0

UltraEdit también tiene un comando Agregar comentario en el menú Edición: Alt + e, n –

2

poner lo siguiente en su ~/.Rprofile archivo:

exclude <- function(blah) { 
    "excluded block" 
} 

Ahora, puede excluir bloques como sigue:

stuffiwant 

exclude({ 
    stuffidontwant 
    morestuffidontwant 
}) 
72

R Estudio (y Eclipse + Statet): Resalta el texto y utilizar CTRL + SHIFT + C para comentar varias líneas en Windows. O, comando + SHIFT + C en OS-X.

+2

En el caso de duplicados, no publique la misma respuesta varias veces. –

Cuestiones relacionadas