2012-02-02 16 views
45

Possible Duplicate:
R: Multiline Comment Workarounds?R: Comentario a cabo bloque de código

quiero comentar varias líneas de código en R. ¿Hay alguna manera de hacerlo sin tener que poner un # antes de cada línea - algo así como /* blocked out code */ en el SAS ?

+0

R no hace comentarios de varias líneas. Ver hilo similar: http://stackoverflow.com/questions/4131338/is-it-possible-to-have-a-multi-line-comments-in-r – Maiasaura

+0

Mi mejor sugerencia sería escribir una macro (o complemento) en caso de que use algo como Sublime Text 2) y asigne un enlace de clave de tal manera que el texto seleccionado (es decir, los comentarios) obtenga un # en el frente una vez que golpee las combinaciones de teclas apropiadas. – Maiasaura

+0

Eso es una idea. Lástima que R no lo haga de forma nativa. Gracias, Maiasaura. – user702432

Respuesta

26

La mayoría de los editores toman algún tipo de atajo para comentar los bloques de código. Los editores predeterminados usan algo como comando o control y comillas simples para comentar las líneas de código seleccionadas. En RStudio es comando o control '/'. Compruebe en su editor.

Todavía está comentando línea por línea, pero también descomenta las líneas seleccionadas. Para Mac RGUI es la opción de comando '(imagino que Windows es la opción de control). Para Rstudio es solo comando o control + shift + C nuevamente.

+3

Sí, esta es una característica súper útil. En Emacs, solo resalte el área por comentar y escriba 'C-x r t' seguido de los caracteres que desea agregar (algo así como' "##" '). Para sangrar un bloque de código para SO, haz lo mismo, ¡pero reemplaza esos tres últimos caracteres con cuatro espacios! –

+2

En Emacs también puede usar 'M-x comment-region'. No sabía sobre 'C-x r', ¡gracias! –

+16

CTRL + MAYÚS + C alterna los comentarios de la selección en eclipse/StatET. –

35

Una especie de comentario de bloque utiliza una sentencia if:

if(FALSE) { 
    all your code 
} 

Funciona, pero casi siempre se utilizan las opciones de bloque de comentarios de mis editores (rstudio, Kate, Kwrite).

19

envolverlo en una función no se usa:

.f = function() { 

## unwanted code here: 

} 
1

utilizo rstudio o Emacs y siempre utilizar los atajos de edición disponibles para comentar regiones. Si esto no es una posibilidad, entonces podría usar la respuesta de Pablo, pero esto solo funciona si su código es sintácticamente correcto.

Aquí hay otra manera sucia que se me ocurrió, envuélvala en scan() y elimine el resultado. Almacena el comentario en la memoria por un tiempo corto, por lo que probablemente no funcione con comentarios muy grandes. Lo mejor es colocar las señales # delante de cada línea (posiblemente con accesos directos del editor).

foo <- scan(what="character") 
These are comments 
These are still comments 
Can also be code: 
x <- 1:10 
One line must be blank 

rm(foo) 
+2

Variación aún más sucia. Defina '" # "<- function() invisible (scan (what = character()))' luego comience su bloque de comentarios con '" # "()'. –

+0

La respuesta anterior realmente debería tener puntos atrás en lugar de comillas (aunque funciona en cualquier caso), pero voy a ser zurcido si puedo encontrar la forma de obtener los palos en un bloque de código dentro de un comentario. –

+0

Richie, buena sugerencia, pero las barras generarán mensajes de error: Error: inesperado '/' en: "' # '(# inicio del comentario http: /" – PatrickT

0

He tratado con esto en talkstats.com en los puestos 94, 101 & 103 encontraron en el hilo: Share Your Code. Como otros han dicho, Rstudio puede ser una mejor forma de hacerlo. Guardo estas funciones en mi .Rprofile y realmente las utilizo, pero para bloquear automáticamente líneas de código rápidamente.

No es tan agradable como esperabas pero puede ser un enfoque.

Cuestiones relacionadas