[r] 여러 줄 주석 해결 방법?

나는 이미이 질문에 대한 답을 알고 있습니다. 하지만 R 사용자 목록에서 자주 질문을받는 것이 하나의 확실한 좋은 대답이 있어야한다고 생각했습니다. 내가 아는 한 R에는 여러 줄 주석 기능이 없습니다. 그래서 누구에게 좋은 해결 방법이 있습니까?

R에서 꽤 많은 작업은 일반적으로 대화 형 세션 (여러 줄 주석의 필요성에 의문을 던짐)과 관련되지만, 동료와 급우에게 스크립트를 보내야하는 경우가 많으며, 그 중 대부분은 사소한 코드 블록과 관련됩니다. 그리고 다른 언어에서 온 사람들에게는 상당히 자연스러운 질문입니다.

과거에는 따옴표를 사용했습니다. 문자열은 줄 바꿈을 지원하므로 다음을 사용하여 R 스크립트를 실행합니다.

"
Here's my multiline comment.

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

잘 작동합니다. 누구에게 더 나은 솔루션이 있습니까?



답변

이것은 메일 링리스트에 꽤 정기적으로 올라옵니다. 예를 들어 r-help의 최근 스레드를보십시오 . 합의 된 대답은 일반적으로 위에 표시된 것입니다. 언어가 직접적인 지원이 없다는 점을 감안할 때 다음 중 하나를 수행해야합니다.

  • region-to-comment 명령이있는 편집기로 작업하며 대부분의 고급 R 편집기는
  • if (FALSE)이전에 제안 된 구성을 사용 하지만 여전히 완전한 구문 분석이 필요하므로 구문이 정확해야합니다.

답변

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 또는 간단한 편집기는 주석 처리 된 간단한 블록 내에서 텍스트를 강조 표시하지 않습니다. 일부 작성자는 here-string 내에서 구문 분석을 보장하기 위해 시간을 할애했습니다. R을 사용하면 여러 줄 주석이나 여기 문자열이 없지만 RStudio에서 보이지 않는 식을 사용하면 모든 장점을 얻을 수 있습니다.

여러 줄 주석, here-strings 또는 실행되지 않은 주석 블록에 사용하려는 섹션에 백틱이없는 한 이것은 가치가있을 수 있습니다.

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


답변

RStudio를 설치하는 것만으로도 여러 줄 코드를 주석 처리하는 과도하게 사용하는 방법 외에도 R의 구문 강조 표시를 지원하므로 Notepad ++ 를 사용할 수 있습니다.

(여러 줄 선택)-> 편집-> 주석 / 주석 해제-> 블록 주석 토글

먼저 코드를 .R 소스로 저장해야합니다 (빨간색으로 강조 표시됨).

먼저 코드를 .R 소스로 저장해야합니다 (빨간색으로 강조 표시됨).