gpt4 book ai didi

r - 表或数据框上的复选框

转载 作者:行者123 更新时间:2023-12-04 04:30:49 25 4
gpt4 key购买 nike

如何使用复选框从数据框或表中选择数据行?
我已经完成了以下代码,但似乎复选框项是列,并且并未真正显示结果。

谢谢你的帮助。

服务器

   shinyServer(function(input, output) {
dataset<-reactive({
data(cars)
cars
})

output$choose_data <- renderUI({
checkboxGroupInput("dtab", "Data Table", dataset())
})

dataset2<-reactive({
input$dtab
})

output$data_table <- renderTable({
data2()
})
})

用户界面
   shinyUI(pageWithSidebar(
headerPanel(""),

sidebarPanel(
uiOutput("choose_data"),
br()
),

mainPanel(
wellPanel("Data", tableOutput("data_table")
))))

最佳答案

嗨,您可以尝试打包ReporteRs,有一个用于创建html表(或word表)的函数FlexTable,例如:

library("shiny")
library("ReporteRs")
mymtcars <- head(mtcars)

# ui
ui <- fluidPage(
tags$h1("Table with checkboxes"),
tableOutput(outputId = "table"),
br(),
verbatimTextOutput(outputId = "out")
)
# server
server <- function(input, output) {
output$table <- renderFlexTable({
# Create checkboxes
mymtcars$Name <- paste0('<label><input type="checkbox" id="car', seq_along(rownames(mymtcars)), '"> <span>', rownames(mymtcars), '</span></label>')
mymtcars <- mymtcars[c("Name", names(mtcars))] # Put col 'Name' in the first place
ft <- vanilla.table(mymtcars) # convert to FlexTable objet
ft[, "Name", to = "header"] <- parLeft() # left align checkboxes
ft[, "Name"] <- parLeft() # left align header
return(ft)
})
# the inputs created are in input$car1, input$car2, ...
output$out <- renderPrint({
# results
res <- unlist(lapply(1:nrow(mymtcars), function(i) input[[paste0("car", i)]]))
print(res)
if (any(res)) {
print(rownames(mymtcars)[res])
}
})
}
# launch app
shinyApp(ui = ui, server = server)

结果看起来像:

ft_example

有关FlexTable对象的更多信息,请查看 here

关于r - 表或数据框上的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19042192/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com