下划线的含义

时间:2016-07-19 14:36:32

标签: r shiny

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)

1 个答案:

答案 0 :(得分:7)

下划线在语义上没有意义,它们只是变量名称的一部分。 (在史前时代,_与赋值运算符<-同义,并且无法在变量名中使用。)tbl_rows_currenttbl_rows_all只是两个特定的input列表的元素。根据作者的喜好,他们同样可以被称为

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

如果您喜欢此类内容,请查看Are there any official naming conventions for R?

但请注意,无法更改这些名称;只有原始包装作者才能拥有。这些元素不是在你的代码中定义的,而是在闪亮的一面 - 它是闪亮的API /接口的一部分,它期望看到这些特定元素(即具有这些特定名称的元素)。