Многострочные методы обхода комментариев?

Я (вроде) уже знаю ответ на этот вопрос. Но я подумал, что это вопрос, который так часто задают в списке пользователей R, что должен быть один солидный хороший ответ. Насколько я знаю, в RR нет многострочной функции комментариев. Итак, есть ли у кого-нибудь хорошие способы обхода?

В то время как довольно много работы в R обычно связаны с интерактивными сеансами (что ставит под сомнение необходимость многострочных комментариев), бывают случаи, когда мне приходилось отправлять сценарии своим коллегам и одноclassникам, большая часть которых связана с нетривиальными блоками кода. И для людей, приезжающих с других языков, это довольно естественный вопрос.

Раньше я использовал цитаты. Поскольку строки поддерживают разрывы строк, запускает R-скрипт с

" Here's my multiline comment. " a <- 10 rocknroll.lm <- lm(blah blah blah) ... 

работает отлично. У кого-то есть лучшее решение?

Это довольно часто появляется в списке рассылки, см., Например, этот последний stream в r-help . Консенсусным ответом обычно является тот, который показан выше: при условии, что язык не имеет прямой поддержки, вам нужно либо

  • работать с редактором, который имеет команды с комментариями по регионам, а большинство продвинутых редакторов R
  • используйте конструкцию if (FALSE) предложенную ранее, но обратите внимание, что она по-прежнему требует полного parsingа и поэтому должна быть синтаксически правильной

Вы можете сделать это легко в RStudio :

выберите код и нажмите CTR + SHIFT + C, чтобы прокомментировать / раскомментировать код.

Оптимальный трюк для RStudio, который я только что обнаружил, заключается в том, чтобы использовать #' поскольку это создает раздел самораспространяющегося комментария (когда вы возвращаетесь к новой строке из такой строки или вставляете новые строки в такой раздел, она автоматически комментирует).

[Обновить] Исходя из комментариев.

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

[Оригинальный ответ]

Вот еще один способ ... проверить снизу снизу. Вырезать и вставить блок кода в RStudio.

Многострочные комментарии, которые делают использование IDE более эффективными, - это «Хорошая вещь», большинство IDE или простых редакторов не выделяют текст в простых прокомментированных блоках; хотя некоторые авторы нашли время, чтобы обеспечить синтаксический анализ внутри этих строк. С R у нас нет многострочных комментариев или здесь строк, но использование невидимых выражений в RStudio дает всю эту доброту.

Пока в разделе не требуются обратные ссылки, которые необходимо использовать для многострочных комментариев, здесь-строк или блоков без выполнения комментариев, это может быть что-то стоящее.

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

И вот фото ...

Структурированные комментарии

Я могу представить два варианта. Первый вариант – использовать редактор, который позволяет блокировать комментарий и раскомментировать (например, Eclipse). Второй вариант – использовать оператор if. Но это позволит вам «прокомментировать» правильный синтаксис R. Следовательно, предпочтительным решением является хороший редактор.

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

Если найти невероятным, что любой язык не будет удовлетворять этому.

Это, наверное, самый чистый обходной путь:

 anything=" first comment line second comment line " - anything=" first comment line second comment line " 

Помимо использования излишнего способа прокомментировать многострочные коды, просто установив RStudio, вы можете использовать Notepad ++, поскольку он поддерживает подсветку синтаксиса R

(Выберите несколько строк) -> Изменить -> Комментарий / Раскомментировать -> Переключить комментарий блока

Обратите внимание, что вам сначала нужно сохранить код как источник .R (выделено красным)

Обратите внимание, что вам сначала нужно сохранить код как источник .R (выделено красным)

Я использую vim для редактирования сценария R.

Скажем, сценарий R – это test.R, содержащий слова «Line 1», «Line 2» и «Line 3» на 3 отдельных строках.

Я открываю test.R в командной строке с Vim, набрав «vim test.R». Затем я перехожу к первой строке, которую хочу прокомментировать, введите «Control-V», стрелку вниз до последней строки, которую я хочу прокомментировать, введите значение «I» для ввода, введите «#», а затем нажмите клавишу Escape, чтобы добавить «#» в каждую строку, которую я выбрал, со стрелкой вниз. Сохраните файл в Vim, а затем выйдите из Vim, набрав «: wq». Изменения должны появиться в Rstudio.

Чтобы удалить комментарии в Vim, начните с первой строки поверх символа «#», который вы хотите удалить, снова выполните «Control-V» и стрелку вниз до последней строки, из которой вы хотите удалить «#». Затем введите «dd». Знаки «#» должны быть удалены.

Существует секундное отставание между моментами, когда изменения в test.R в Vim отражаются в Rstudio.

В RStudio простой способ сделать это – написать свой комментарий, и после того, как вы использовали CTRL + Shift + C, чтобы прокомментировать вашу строку кода, используйте CTRL + SHIFT + /, чтобы перекомпонировать комментарии на несколько строк для удобства чтения.

В Python вы делаете многострочный комментарий с 3-кратными одинарными кавычками до и после комментариев. Я пробовал это в R и, похоже, тоже работает.

Например.

 ''' This is a comment This is a second comment ''' 
  • Как процитировать «* /» в JavaDocs
  • Давайте будем гением компьютера.