Pergunta

I (tipo de) já sabe a resposta a esta pergunta. Mas eu achei que é uma que é respondida com tanta freqüência na lista R Usuários, que deve haver uma resposta sólida bom. Para o melhor de meu conhecimento não há nenhuma funcionalidade comentário de várias linhas em R. Então, alguém tem alguma boas soluções?

Embora um pouco de trabalho no R geralmente envolve sessões interativas (que lança dúvidas sobre a necessidade de comentários de várias linhas), há momentos em que eu tive que enviar scripts para colegas e colegas, muitas das quais envolve blocos não triviais de código. E para as pessoas que vêm de outras línguas é uma questão bastante natural.

No passado, eu usei aspas. Desde cordas apoiar quebras de linha, executando um script R com

"
Here's my multiline comment.

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

funciona bem. Alguém tem uma solução melhor?

Foi útil?

Solução

Isto não aparecer na lista de discussão com bastante regularidade, consulte por exemplo este recente segmento em r-ajuda . A resposta consenso normalmente é a mostrada acima: que, dado que a língua não tem suporte direto, você tem que quer

  • trabalho com um editor que possui comandos de região a comentar, e mais avançado editores R DO
  • usar o if (FALSE) construções sugerido anteriormente, mas nota que ele ainda requer análise completa e deve, portanto, ser sintaticamente correto

Outras dicas

Você pode fazer isso facilmente em rstudio :

selecione o código e clique em CTR + Shift + C de comentário de código / uncomment.

Um truque para rstudio Eu apenas descobri é para uso #' pois isso cria uma seção de comentários auto-expansível (quando você retornar a nova linha a partir de uma tal linha ou inserir novas linhas em tal seção é automaticamente comentário) .

[Update] com base em comentários.

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

[Resposta Original]

Aqui está outra maneira ... confira a foto na parte inferior. Recorte e cole o bloco de código em rstudio.

comentários de várias linhas que fazem usando um IDE mais eficaz são uma "coisa boa", a maioria das IDEs ou editores simples não têm destacando do texto dentro simples comentou out blocos; embora alguns autores tenham tomado a tempo para garantir a análise dentro de cadeias de caracteres here. Com R não temos comentários de várias linhas ou cadeias de caracteres here, quer, mas usando expressões invisíveis em rstudio dá toda essa bondade.

Enquanto não há qualquer backticks na seção desejada para ser usado por comentários de várias linhas, cadeias de caracteres here, ou blocos de comentário não executada, em seguida, isso pode ser algo que valha a pena.

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

E aqui está a foto ...

estruturados Comentários

Eu posso pensar de duas opções. A primeira opção é usar um editor que permite bloquear comentário e uncomment (eg. Eclipse). A segunda opção é usar uma instrução if. Mas isso só irá permitir que você 'comentário' sintaxe R correta. Assim, um bom editor é a solução preferida.

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

}

Se achar que é incrível que qualquer linguagem não iria servir para isso.

Esta é provavelmente a solução mais limpa:

anything="
first comment line
second comment line
"

Além de usar o caminho overkilled a comentar códigos multi-linha apenas instalando rstudio, você pode usar Notepad ++ como ele suporta o destaque de sintaxe de R

(Selecione multi-linhas) -> Edit -> Comment / Uncomment -> Bloco de alternância Comment

Note que você precisa para salvar o código como uma fonte .R primeiro (destacado em vermelho)

Note que você precisa para salvar o código como uma fonte .R primeiro (destacado em vermelho)

Eu uso o vim para editar o script R.

Vamos dizer que o roteiro R é test.R, contendo digamos "Line 1", "Linha 2" e "Linha 3" em 3 linhas separadas.

abro test.R na linha de comando com Vim digitando "vim test.R". Então eu ir para a 1ª linha Eu quero comentar, tipo "Control-V", seta para baixo até a última linha que eu quero comentar, digite um capital I ou seja, "I" para inserir, digite "#", e em seguida bater a tecla Esc para adicionar "#" para cada linha que eu selecionados por arrowing para baixo. Salve o arquivo no Vim e saia Vim digitando ": wq". As mudanças devem aparecer em rstudio.

Para eliminar os comentários no Vim, começar na primeira linha na parte superior do caractere "#" que pretende eliminar, mais uma vez fazer "Control-V", e seta para baixo à última linha que deseja excluir um "# " de. Em seguida, digite "dd". Os "#" sinais deve ser suprimida.

Há segundos-estima do intervalo de tempo entre quando mudanças test.R no vim são refletidos em rstudio.

Na rstudio uma maneira fácil de fazer isso é escrever o seu comentário e CTRL depois de ter usado + Shift + C para comentar a sua linha de código, em seguida, usar CTRL + SHIFT + / para refLOW você comentar em várias linhas para facilitar a leitura.

Em Python você faz um comentário de várias linhas com 3x aspas simples antes e depois dos comentários. Eu tentei isso em R e parece funcionar também.

Por exemplo.

'''
This is a comment
This is a second comment
'''
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top