programming - ¿Soluciones temporales del comentario de Multiline?
r studiodio (10)
Yo (algo así como) ya sé la respuesta a esta pregunta. Pero pensé que es uno de los que se pregunta con tanta frecuencia en la lista de usuarios R, que debería haber una buena respuesta sólida. A mi leal saber y entender, no existe una funcionalidad de comentarios de líneas múltiples en R. Entonces, ¿alguien tiene alguna solución alternativa?
Mientras que un poco de trabajo en R generalmente involucra sesiones interactivas (lo que arroja dudas sobre la necesidad de comentarios de líneas múltiples), a veces tengo que enviar scripts a colegas y compañeros de clase, muchos de los cuales involucran bloques de código no triviales. Y para las personas que vienen de otros idiomas es una pregunta bastante natural.
En el pasado, he usado comillas. Como las cadenas admiten saltos de línea, ejecute un guión R con
"
Here''s my multiline comment.
"
a <- 10
rocknroll.lm <- lm(blah blah blah)
...
funciona bien. ¿Alguien tiene una solución mejor?
Además de utilizar la forma exagerada de comentar códigos de varias líneas simplemente instalando RStudio, puede usar Notepad++ ya que admite el resaltado de sintaxis de R
(Seleccione multilíneas) -> Editar -> Comentar / Descomentar -> Alternar el comentario bloqueado
Tenga en cuenta que primero debe guardar el código como fuente .R (resaltado en rojo)
En RStudio una forma fácil de hacerlo es escribir su comentario y, una vez que haya utilizado CTRL + Shift + C para comentar su línea de código, utilice CTRL + MAYÚS + / para volver a refinar su comentario en varias líneas para facilitar la lectura.
En Python, realiza un comentario de varias líneas con 3 comillas simples antes y después de los comentarios. Intenté esto en R y parece que también funciona.
P.ej.
''''''
This is a comment
This is a second comment
''''''
Esto aparece regularmente en la lista de correo, vea por ejemplo este hilo reciente en la ayuda de r . La respuesta consensuada suele ser la que se muestra arriba: dado que el idioma no tiene apoyo directo, usted tiene que
- trabajar con un editor que tenga comandos de región a comentar, y la mayoría de los editores R avanzados
- utilice las construcciones
if (FALSE)
sugeridas anteriormente, pero tenga en cuenta que todavía requiere un análisis completo y por lo tanto debe ser sintácticamente correcto
Puedes hacerlo fácilmente en RStudio :
seleccione el código y haga clic en CTR + MAYÚS + C para comentar / descomentar código.
Puedo pensar en dos opciones. La primera opción es usar un editor que permita bloquear el comentario y el comentario (por ejemplo, Eclipse). La segunda opción es usar una instrucción if. Pero eso solo le permitirá ''comentar'' la sintaxis correcta de R. Por lo tanto, un buen editor es la solución preferida.
if(FALSE){
#everything in this case is not executed
}
Si le parece increíble que cualquier idioma no se adapte a esto.
Esta es probablemente la solución más limpia:
anything="
first comment line
second comment line
"
Un buen truco para RStudio que acabo de descubrir es usar #''
ya que crea una sección de comentarios autoexpansible (cuando regresa a una nueva línea desde dicha línea o inserta nuevas líneas en dicha sección, automáticamente hace un comentario).
Yo uso vim para editar el guión R.
Digamos que el guión R es test.R, que contiene decir "Línea 1", "Línea 2" y "Línea 3" en 3 líneas separadas.
Abro test.R en la línea de comando con Vim escribiendo "vim test.R". Luego voy a la primera línea que quiero comentar, escriba "Control-V", flecha hacia abajo a la última línea que quiero comentar, escriba una capital I, es decir, "I" para insertar, escriba "#", y luego presione la tecla Escape para agregar "#" a cada línea que seleccioné, presionando con la flecha hacia abajo. Guarde el archivo en Vim y luego salga de Vim escribiendo ": wq". Los cambios deberían aparecer en Rstudio.
Para eliminar los comentarios en Vim, comience en la primera línea en la parte superior del carácter "#" que desea eliminar, vuelva a hacer "Control-V", y la flecha hasta la última línea de la que desea eliminar un "#". Luego escribe "dd". Los signos "#" deben eliminarse.
Hay segundos de latencia entre los cambios en test.R en Vim se reflejan en Rstudio.
[Actualización] Basado en comentarios.
# An empty function for Comments
Comment <- function(`@Comments`) {invisible()}
#### Comments ####
Comment( `
# Put anything in here except back-ticks.
api_idea <- function() {
return TRUE
}
# Just to show api_idea isn''t really there...
print( api_idea )
`)
####
#### Code. ####
foo <- function() {
print( "The above did not evaluate!")
}
foo()
[Respuesta original]
Aquí hay otra manera ... mira la foto en la parte inferior. Corta y pega el bloque de código en RStudio.
Los comentarios de líneas múltiples que hacen que el uso de un IDE sea más efectivo son un "Bien", la mayoría de los IDEs o editores simples no tienen resaltado de texto dentro de simples bloques comentados; aunque algunos autores se han tomado el tiempo para asegurar el análisis sintáctico dentro de este sistema. Con R no tenemos comentarios multilínea o cadenas aquí tampoco, pero el uso de expresiones invisibles en RStudio le da toda esa bondad.
Siempre que no haya ningún backticks en la sección que se desee utilizar para los comentarios de líneas múltiples, cadenas aquí o bloques de comentarios no ejecutados, entonces esto podría ser algo que valga la pena.
#### Intro Notes & Comments ####
invisible( expression( `
{ <= put the brace here to reset the auto indenting...
Base <- function()
{ <^~~~~~~~~~~~~~~~ Use the function as a header and nesting marker for the comments
that show up in the jump-menu.
--->8---
}
External <- function()
{
If we used a function similar to:
api_idea <- function() {
some_api_example <- function( nested ) {
stopifnot( some required check here )
}
print("Cut and paste this into RStudio to see the code-chunk quick-jump structure.")
return converted object
}
#### Code. ####
^~~~~~~~~~~~~~~~~~~~~~~~~~ <= Notice that this comment section isnt in the jump menu!
Putting an apostrophe in isn''t causes RStudio to parse as text
and needs to be matched prior to nested structure working again.
api_idea2 <- function() {
} # That isn''t in the jump-menu, but the one below is...
api_idea3 <- function() {
}
}
# Just to show api_idea isn''t really there...
print( api_idea )
}`) )
####
#### Code. ####
foo <- function() {
print( "The above did not evaluate and cause an error!")
}
foo()
## [1] "The above did not evaluate and cause an error!"
Y aquí está la foto ...