125 votes

Commentaire multiligne Contournement?

J'ai (un peu) connaissez déjà la réponse à cette question. Mais j'ai pensé que c'est celui qui obtient demandé si fréquemment sur la R de la liste des Utilisateurs, qu'une solide bonne réponse appartient à. Au meilleur de ma connaissance, il n'existe pas de multi-fonctionnalité de commentaires dans R. Donc, avez-vous de bonnes solutions de contournement?

Bien que tout à fait un peu de travail dans la R implique généralement des sessions interactives (ce qui jette un doute sur le besoin pour plusieurs lignes de commentaires), il y a des moments où j'ai eu à envoyer des scripts à des collègues et camarades de classe, une grande partie de ce qui implique non négligeable de blocs de code. Et pour les personnes venant d'autres langues, il est assez naturel de se demander. .

Dans le passé, j'ai utilisé les guillemets. Depuis les chaînes de soutien mais les sauts de ligne, l'exécution d'un script R avec

"
Here's my multiline comment.

"
a <- 10
rocknroll.lm <- lm(blah blah blah)
 ...

fonctionne très bien. N'y'all ont de meilleures solutions?

77voto

Salvador Dali Points 11667

Vous pouvez le faire facilement dans RStudio:

sélectionnez le code et cliquez sur CTR+SHIFT+C pour commenter / supprimer le commentaire.

http://www.rstudio.com/ide/docs/using/source

56voto

Dirk Eddelbuettel Points 134700

Cela vient sur la liste de diffusion assez régulièrement, voir par exemple cette récente fil sur r-help. Le consensus réponse est généralement celui qui est illustré ci-dessus: que, étant donné que la langue n'a pas de soutien direct, vous devez soit

  • travailler avec un éditeur qui a région-à-commentaire commandes, et les plus avancés de la recherche éditeurs n'
  • utiliser l' if (FALSE) construit suggéré plus tôt, mais notez que cela nécessite encore de compléter l'analyse et doit donc être syntaxiquement correct

43voto

geotheory Points 1724

Une astuce intéressante pour RStudio que je viens de découvrir consiste à utiliser "# '" car cela crée une section de commentaire à développement automatique (lorsque vous revenez à la nouvelle ligne à partir d'une telle ligne ou insérez de nouvelles lignes dans une telle section, elle est automatiquement commentée) .

21voto

Thell Points 2772

[Mise à jour] en se fondant sur les commentaires.

# 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()

[Réponse Originale À Cette Question]

Voici une autre façon... découvrez le pic à fond. Couper et coller le bloc de code dans RStudio.

Les commentaires de plusieurs lignes qui permettent à l'aide d'un IDE plus efficaces sont une "Bonne Chose", la plupart des IDEs ou de simples éditeurs n'ont pas le surlignage de texte à l'intérieur de simple commenté de blocs; bien que certains auteurs ont pris le temps de vous assurer d'analyse au sein de ici-chaînes. Avec R, nous n'avons pas les commentaires multi-lignes ou ici-chaînes, mais en utilisant invisible expressions dans RStudio donne tout ce que la bonté.

Tant qu'il ne sont pas les backticks dans la section souhaité être utilisé pour un commentaire sur plusieurs lignes, ici-chaînes, ou de la non-exécution des blocs de commentaires alors ce pourrait être quelque chose en vaille vraiment la peine.

#### 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!"

Et voici le pic...

Structured Comments

13voto

Thierry Points 6246

Je peux penser à deux options. La première option consiste à utiliser un éditeur permettant de bloquer les commentaires et les commentaires (par exemple, Eclipse). La deuxième option consiste à utiliser une instruction if. Mais cela ne vous permettra que de "commenter" la syntaxe R correcte. Par conséquent, un bon éditeur est la solution de contournement préférée.

 if(FALSE){
     #everything in this case is not executed

}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X