2016-07-19 2 views
4

R의 밑줄 함수는 무엇입니까? 예를 들어, 아래 코드에서 줄은 input$tbl_rows_current; 현재 표시된 데이터가 변수 filtered_data에 저장되어 있는지 확인합니다. 그러나이를 input$tbl_rows_all으로 변경하면 필터링 된 모든 데이터가 변수 filtered data에 저장됩니다.밑줄의 의미

나는 그것이 여기에서 어떻게 기능 하는지를 이해하지만 그 일반적인 용도는 무엇입니까?

ui = fluidPage(dataTableOutput('tbl'), 
      plotOutput('plot1') 
) 

server = function(input, output) { 
output$tbl = renderDataTable({ 
    datatable(KSI, filter="top",rownames=TRUE,options = list(lengthChange = FALSE)) 
}) 
output$plot1 = renderPlot({ 
    filtered_data <- as.numeric(*input$tbl_rows_current*)  
    print(filtered_data) 
}) 
} 
shinyApp(ui=ui, server=server) 
+3

질문이 RStudio 코드 편집기와 관련된 경우에만 'rstudio' 태그를 사용하십시오. 문법에 관한 질문을 할 때'펜과 종이 '태그를 사용하지 않을 것입니다! – Gregor

답변

7

언더 스코어는 의미 상 의미가 없으며 변수 이름의 일부입니다. (선사 시대에 _은 할당 연산자 <-과 동의어 였으므로 변수 이름에는 사용할 수 없습니다. tbl_rows_currenttbl_rows_allinput 목록의 두 가지 요소 중 하나입니다. 저자의 환경 설정에 따라, 그들은 동일하게

  • tblrowscurrenttblrowsall
  • TblRowsCurrentTblRowsAll
  • tbl.rows.currenttbl.rows.all
  • orangesjackhammers

라고 수 있었다 당신이 만약 이런 종류의 일처럼, 체크 아웃 Are there any official naming conventions for R?

그러나 은이 이름을 변경할 수 없습니다. 원래 패키지 작성자 만 가질 수 있습니다. 이러한 요소는 코드에서 정의 된 것이 아니라 반짝이는 측면에서 정의됩니다.이 특정 요소 (즉, 이러한 특정 이름을 가진 요소)를 볼 것으로 예상되는 반짝이는 API/인터페이스의 일부입니다.

+0

+1하지만 그것은 주관적인 선호가 아님을 지적 할 가치가 있습니다. 옵션 2를 잘못 할 수는 없지만 (개인적으로는 싫지만) 다른 모든 옵션은 객관적으로 열등합니다. –

+4

이것은 불꽃 전쟁의 재료입니다. 나는 (1) 구식 R 코드에서 전통적인 것이고 (2) 쉬프트 키를 누르지 않아도되기 때문에 쉬워 진다고 주장하기 때문에 (?) 뱀의 경우'x_y '를 쓴다는 점을 구분하는'xy'를 선호하는 R 핵심 멤버를 안다.) –

+1

하지만 S3 파견과 충돌하기 때문에이 대회가 왜 나쁜지에 대한 객관적인 주장이 있습니다. –