下划线的含义

B.D*_*Doe 4 r shiny

R中下划线的功能是什么?例如,在下面的代码中,行:; 确定显示的当前数据是否放入变量中; 但是,如果我将其更改为,则过滤的所有数据都将放入变量中.input$tbl_rows_currentfiltered_datainput$tbl_rows_allfiltered 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)
Run Code Online (Sandbox Code Playgroud)

Ben*_*ker 7

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

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

如果你喜欢这种东西,请查看R是否有任何官方命名约定?

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

  • 这是火焰战争的东西.我知道一个R Core成员更喜欢以点分隔的`xy`到蛇案`x_y`,因为(1)它是传统的老式R代码和(2)他声称它不容易不必按下shift键(! ) (4认同)