我有以下Shiny应用程序
library(dplyr)
library(rhandsontable)
options(shiny.maxRequestSize = 9*1024^2)
function(input, output) {
values <- reactiveValues()
Post <- c("", "")
list2 <- c(12,13)
df <- data.frame(Post, list2)
output$contents <- renderRHandsontable({
rhandsontable(df, width = 550, height = 300) %>%
hot_col(col = "Post", type = "dropdown")
})
saveData <- function(){
finalDF <- hot_to_r(input$contents)
newDF <- finalDF[complete.cases(finalDF),]
return(newDF)
}
output$contentFinal <- renderRHandsontable(
#finalDF <- hot_to_r(input$contents)
return(newDF)
)
observeEvent(input$saveBtn, saveData())
}
library(rhandsontable)
fluidPage(
# App title ----
titlePanel("Tabsets"),
# Sidebar layout with input and output definitions ----
sidebarLayout(
# Sidebar panel for inputs ----
sidebarPanel(
),
# Main panel for displaying outputs ----
mainPanel(
# Output: Tabset w/ plot, summary, and table ----
tabsetPanel(type = "tabs",
tabPanel("Summary", rHandsontableOutput('contents'),
actionButton("saveBtn", "Save changes")
),
tabPanel("Tab",
rHandsontableOutput('contentFinal'))
)
)
)
)
我尝试实现的目标 - 当我点击摘要标签中的保存按钮时,我会在标签视图中看到完整案例的概述。
因此,当我在数据库的第一行中选择一个值并点击保存更改时,它应该在下一个选项卡中弹出一个数据框选择。
然而,在Tab中找不到保存中创建的newDF文件。有关如何确保过滤器弹出的任何想法?
答案 0 :(得分:1)
您可以更改服务器代码
server <- function(input, output) {
values <- reactiveValues()
Post <- c("", "")
list2 <- c(12,13)
df <- data.frame(Post, list2)
output$contents <- renderRHandsontable({
rhandsontable(df, width = 550, height = 300) %>%
hot_col(col = "Post", type = "dropdown")
})
saveData <- eventReactive({input$saveBtn},{
finalDF <- hot_to_r(input$contents)
finalDF <- as.data.frame(lapply(finalDF,function(Col){as.numeric(as.character(Col))}))
newDF <- finalDF[complete.cases(finalDF),]
return(newDF)
})
output$contentFinal <- renderRHandsontable(
#finalDF <- hot_to_r(input$contents)
rhandsontable(saveData())
)
# observeEvent(input$saveBtn, saveData())
}
希望这有帮助!