web-dev-qa-db-fra.com

Est-il possible d'avoir un commentaire multiligne dans R?

J'ai trouvé ceci ancien fil (d'il y a plus d'un an), ce qui explique pourquoi R ne prend pas en charge les commentaires multilignes (comme/* comment */de PHP, par exemple).

Je me demande si cela a été résolu l'année dernière ou s'il existe d'autres solutions? (Par exemple, dans Notepad ++ avec npptor, vous pouvez marquer plusieurs lignes et appuyer sur ctrl + q pour toutes les marquer en tant que commentaires. Existe-t-il des solutions similaires pour d'autres IDE?)

87
Tal Galili

Vous pouvez, si vous le souhaitez, utiliser des chaînes autonomes pour les commentaires multilignes - j'ai toujours pensé que cela était plus joli que les blocs if (FALSE) { }. La chaîne sera évaluée et ensuite supprimée, donc tant que ce n'est pas la dernière ligne d'une fonction, rien ne se passera.

"This function takes a value x, and does things and returns things that
 take several lines to explain"
doEverythingOften <- function(x) {
     # Non! Comment it out! We'll just do it once for now.
     "if (x %in% 1:9) {
          doTenEverythings()
     }"
     doEverythingOnce()
     ...
     return(list(
         everythingDone = TRUE, 
         howOftenDone = 1
     ))
}

La principale limitation est que lorsque vous commentez des éléments, vous devez surveiller vos guillemets: si vous avez un type à l'intérieur, vous devrez utiliser l'autre pour le commentaire; et si vous avez quelque chose comme "des chaînes avec 'postrophes" à l'intérieur de ce bloc, alors il est impossible que cette méthode soit une bonne idée. Mais il reste le bloc if (FALSE).

L'autre limitation, l'une des deux méthodes, est que vous ne pouvez utiliser de tels blocs que dans les endroits où une expression serait syntaxiquement valide - pas de commentaire sur des parties de listes, par exemple.

En ce qui concerne quoi dans quel environnement de développement intégré: Je suis un utilisateur Vim et je trouve commentateur NERD un outil tout à fait excellent pour commenter rapidement ou supprimer plusieurs lignes. Très convivial, très bien documenté.

Enfin, à l’invite R (du moins sous Linux), vous trouverez la belle Alt-Shift-# commenter la ligne en cours. Très agréable de mettre une ligne "en attente", si vous travaillez sur une ligne et que vous réalisez ensuite que vous avez besoin d'une étape de préparation en premier.

51
Esteis

R Studio (et Eclipse + StatET): mettez le texte en surbrillance et utilisez CTRL+SHIFT+C commenter plusieurs lignes dans Windows. Ou, command+SHIFT+C sous OS-X.

108
SoilSciGuy

CTRL+SHIFT+C dans Eclipse + StatET et Rstudio.

27
Roman Luštrik

Aucun commentaire multiligne dans R à partir de la version 2.12 et peu susceptible de changer. Dans la plupart des environnements, vous pouvez commenter des blocs en mettant en surbrillance et en alternant les commentaires. Dans Emacs, c'est 'M-x;'.

11
jimmyb
if(FALSE) {
...
}

empêche plusieurs lignes d'être exécutées. Cependant, ces lignes doivent toujours être syntaxiquement correctes, c’est-à-dire ne peuvent pas être des commentaires au sens propre. Toujours utile dans certains cas cependant.

11
caracal

Malheureusement, il n'y a toujours pas de commentaire multiligne dans R.

Si votre éditeur de texte prend en charge le mode colonne, utilisez-le pour ajouter plusieurs # à la fois. Si vous utilisez UltraEdit, Alt+c vous mettra en mode colonne.

5
Banjer

Mettez ce qui suit dans votre ~/.Rprofile fichier:

exclude <-  function(blah) {
    "excluded block"
}

Maintenant, vous pouvez exclure des blocs comme suit:

stuffiwant

exclude({
    stuffidontwant
    morestuffidontwant
})
4
Hugh Perkins