Solutions de commentaires multilignes?

Je connais (en quelque sorte) la réponse à cette question. Mais je me suis dit que c’est celui qui est demandé si souvent sur la liste des utilisateurs R, qu’il devrait y avoir une bonne réponse. À ma connaissance, il n’y a pas de fonctionnalité de commentaire multiligne dans R. Donc, est-ce que quelqu’un a de bonnes solutions?

Bien que beaucoup de travail dans R implique généralement des sessions interactives (ce qui jette un doute sur la nécessité de commentaires multilignes), il arrive que je doive envoyer des scripts à des collègues et à des camarades de classe. Et pour les personnes venant d’autres langues, c’est une question assez naturelle.

Dans le passé, j’ai utilisé des citations. Comme 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 Est-ce que quelqu’un a une meilleure solution?

Cela apparaît assez régulièrement sur la liste de diffusion, voir par exemple ce récent fil de discussion 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

  • travailler avec un éditeur qui a des commandes région à commentaire, et la plupart des éditeurs R avancés font
  • utiliser les constructions if (FALSE) suggérées plus tôt mais notez que cela nécessite toujours une parsing complète et doit donc être syntaxiquement correct

Vous pouvez le faire facilement dans RStudio :

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

Un truc intéressant pour RStudio que je viens de découvrir est d’utiliser #' car cela crée une section de commentaire auto-extensible (lorsque vous revenez à une nouvelle ligne à partir d’une telle ligne ou insérez de nouvelles lignes dans une telle section, elle est automatiquement commentée).

[Mise à jour] Basé sur 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 une autre façon ... consultez 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 une "bonne chose", la plupart des IDE ou des éditeurs simples n'ont pas de mise en évidence de texte dans des blocs simples commentés; Cependant, certains auteurs ont pris le temps de s’assurer de l’parsing des chaînes ici. Avec R, nous n'avons pas non plus de commentaires multi-lignes ou de chaînes de caractères, mais l'utilisation d'expressions invisibles dans RStudio donne toute cette qualité.

Tant qu'il n'y a pas de raccourcis dans la section à utiliser pour des commentaires multilignes, des chaînes de caractères ou des blocs de commentaires non exécutés, cela peut être intéressant.

 #### 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 décommentations (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 trouver cela incroyable que n’importe quelle langue ne serait pas à la hauteur.

C’est probablement la solution la plus propre:

 anything=" first comment line second comment line " 

Outre l’utilisation de la manière surchargée de commenter les codes multi-lignes en installant simplement RStudio, vous pouvez utiliser Notepad ++ car il prend en charge la coloration syntaxique de R

(Sélectionnez plusieurs lignes) -> Modifier -> Commentaire / Décommenter -> Toggle Block Comment

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.

Disons que le script R est test.R, contenant par exemple “Ligne 1”, “Ligne 2” et “Ligne 3” sur 3 lignes distinctes.

J’ouvre le test.R sur la ligne de commande avec Vim en tapant “vim test.R”. Puis je vais à la 1ère ligne que je veux commenter, tapez “Control-V”, flèche vers le bas à 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 Echap pour append “#” à chaque ligne sélectionnée en arrivant. Enregistrez le fichier dans Vim, puis quittez Vim en tapant “: wq”. Les modifications doivent apparaître dans Rstudio.

Pour supprimer les commentaires dans Vim, commencez par la première ligne au-dessus du caractère “#” que vous souhaitez supprimer, puis “Contrôle-V” et la flèche jusqu’à la dernière ligne à laquelle vous voulez supprimer un “#”. Puis tapez “dd”. Les signes “#” doivent être supprimés.

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

Dans RStudio , vous pouvez facilement écrire votre commentaire et, une fois que vous avez utilisé CTRL + Shift + C pour commenter votre ligne de code, utilisez CTRL + SHIFT + / pour vous repositionner sur plusieurs lignes pour faciliter la lecture.

En Python, vous faites un commentaire multiligne avec 3x guillemets simples avant et après les commentaires. J’ai essayé ceci en R et cela semble fonctionner aussi.

Par exemple.

 ''' This is a comment This is a second comment '''