与R中的编辑功能非常相似,我想从Shiny中手动更改数据框。我去过闪亮的网站
http://shiny.rstudio.com/gallery/datatables-options.html
但是,我找不到可以手动更改数据的地方。
答案 0 :(得分:3)
你可以用shinysky
包做你想做的事。它提供了按需编辑表格的功能。下面是一个使用mtcars
数据集的简单示例,您可以在其中更改表内容,然后下载在会话期间引入的更新。您可以轻松地将文件输入添加到自己阅读.csv
文件
rm(list = ls())
library(shiny)
library(shinydashboard)
library(shinysky)
ui <- dashboardPage(
dashboardHeader(title = "How to edit a table"),
dashboardSidebar(sidebarMenu(id = "tabs",menuItem("Menu Item 1", tabName = "one", icon = icon("dashboard"))
)),
dashboardBody(
tabItems(tabItem(tabName = "one",hotable("hotable1"),downloadButton('downloadData', 'Download')))
))
server <- function(input, output) {
previous <- reactive({mtcars})
sample_data <- reactive({
if(is.null(input$hotable1)){return(previous())}
else if(!identical(previous(),input$hotable1))
{
sample_data <- as.data.frame(hot.to.df(input$hotable1))
sample_data
}
})
output$hotable1 <- renderHotable({sample_data()}, readOnly = F)
output$downloadData <- downloadHandler(filename = function() {paste(Sys.time(), '- My New Table.csv', sep='') },content = function(file) {write.csv(sample_data(), file, row.names = FALSE)})
}
shinyApp(ui, server)
下载的文件如下所示: