Question

Je connais (en quelque sorte) déjà la réponse à cette question. Mais j’ai pensé que c’était une question fréquemment posée dans la liste des utilisateurs R, qu’il ne devrait y avoir qu’une seule bonne réponse. À ma connaissance, il n'y a pas de fonctionnalité de commentaire multiligne dans R. Alors, y a-t-il des solutions de contournement valables?

Bien que R nécessite généralement des sessions interactives (ce qui jette un doute sur la nécessité de faire des commentaires sur plusieurs lignes), j’ai parfois dû envoyer des scripts à des collègues et à des camarades de classe, ce qui impliquait souvent des blocs non essentiels. code. Et pour les personnes venant d’autres langues, c’est une question assez naturelle.

Dans le passé, j'ai utilisé des guillemets. Puisque les chaînes supportent les sauts de ligne, exécuter un script R avec

"
Here's my multiline comment.

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

fonctionne bien. Quelqu'un a-t-il une meilleure solution?

Était-ce utile?

La solution

Cela apparaît régulièrement sur la liste de diffusion, voir par exemple. ce fil de discussion récent sur r-help . La réponse consensuelle est généralement celle indiquée ci-dessus: étant donné que la langue n’a pas de support direct, vous devez soit

  • fonctionne avec un éditeur doté de commandes de région à commentaire, contrairement à la plupart des éditeurs R avancés
  • utilise les constructions if (FALSE) suggérées plus tôt, mais notez qu'elle nécessite toujours une analyse syntaxique complète et doit donc être syntaxiquement correcte

Autres conseils

Vous pouvez le faire facilement dans RStudio :

sélectionnez le code et cliquez sur CTR + SHIFT + C commenter / décommenter le code.

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 est automatiquement commentée).

[Mise à jour] En fonction des 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]

Voici un autre moyen ... regardez la photo en bas. Coupez et collez le bloc de code dans RStudio.

Les commentaires multilignes qui rendent l’utilisation d’un IDE plus efficace sont un "Good Thing", la plupart des IDE ou des éditeurs simples n’ont pas de surbrillance de texte dans les blocs commentés -out simples; bien que certains auteurs aient pris le temps de s’assurer que l’analyse est au sein de la chaîne here-strings. Avec R, nous n’avons pas non plus de commentaires multilignes ni de chaînes ici, mais l’utilisation d’expressions invisibles dans RStudio donne tout ce bien.

Tant que la section que vous souhaitez utiliser pour les commentaires multilignes, les chaînes ici ou les blocs de commentaires non exécutés ne contient pas de backtick, cela peut valoir le coup.

#### 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 la photo ...

Commentaires structurés

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

}

Si vous trouvez incroyable que toutes les langues ne répondent pas à cela.

Il s'agit probablement de la solution la plus propre:

anything="
first comment line
second comment line
"

Outre l'utilisation de la méthode surchargée pour commenter des codes multilignes simplement en installant RStudio, vous pouvez utiliser Notepad ++ car il prend en charge la coloration syntaxique de R

(Sélectionner plusieurs lignes) - > Modifier - > Commentaire / Uncomment - > Activer / désactiver le commentaire

Notez que vous devez d'abord enregistrer le code en tant que source .R (surligné en rouge)

Notez que vous devez d'abord enregistrer le code en tant que source .R (surligné en rouge)

J'utilise vim pour éditer le script R.

Supposons que le script R soit test.R, contenant les expressions "Ligne 1", "Ligne 2" et "Ligne 3". sur 3 lignes séparées.

J'ouvre test.R sur la ligne de commande avec Vim en tapant "vim test.R". Ensuite, je passe à la 1ère ligne que je souhaite commenter, tapez "Control-V", la flèche vers le bas jusqu'à la dernière ligne que je veux commenter, tapez un I majuscule, c'est-à-dire "I". pour insérer, tapez "#", puis appuyez sur la touche Échap pour ajouter "#". à chaque ligne que j'ai sélectionnée en descendant. Enregistrez le fichier dans Vim, puis quittez-le en tapant ": wq". Les modifications doivent apparaître dans Rstudio.

Pour supprimer les commentaires dans Vim, commencez par la première ligne en haut du caractère " # " vous voulez supprimer, faites à nouveau "Control-V" et la flèche vers le bas jusqu'à la dernière ligne où vous souhaitez supprimer un "#". de. Puis tapez "dd". Le " # " les panneaux doivent être supprimés.

Il y a quelques secondes de délai entre le moment où les modifications à tester.R dans Vim sont reflétées dans Rstudio.

Pour RStudio , un moyen facile de le faire est d'écrire votre commentaire et, une fois que vous avez utilisé CTRL + Maj + C pour commenter votre ligne de code, puis utilisez CTRL + MAJ + / pour afficher votre commentaire sur plusieurs lignes afin de faciliter la lecture.

En Python, vous faites un commentaire multiligne avec 3x guillemets simples avant et après les commentaires. J'ai essayé cela en R et ça a l'air de marcher aussi.

Par exemple

'''
This is a comment
This is a second comment
'''
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top