1
我需要幫助編寫一個閃亮的應用程序,它會在輸入每個輸入並單擊actionbutton後吐出一個單獨的數據表。我得到的應用程序只是輸出到數據表,但它會覆蓋一個新的條目。我查看了R Shiny的參考部分,看起來我需要使用insertUI(),但我並不真正瞭解Shiny非常好地弄清楚。請幫忙。謝謝。如何在點擊按鈕後添加新的/單獨的datatables
library(shiny)
library(rhandsontable)
#UI
ui <-shinyUI(fluidPage(
titlePanel('Drug Prep'),
sidebarPanel(textInput('expid','Experiment ID'),
textInput('nsc','NSC Number'),
textInput('solvent','Solvent'),
numericInput('stkcon','Stock Conc(mg/ml)',0),
numericInput('Repeat','Repeat',0),
textAreaInput('instruct','Instructions',height='50px'),
numericInput('amt','Amt to weigh(mg)',0),
numericInput('vehicle','Tot_vol of vehicle(ml)',0),
hr(),
numericInput('grp','Group',0),
numericInput('micedose','Mice Dose/vial',0),
numericInput('dose','Dose(mg/kg)',0),
numericInput('doseconc','Dose Concentration(mg/ml)',0),
numericInput('numvial','No. of Vials',0),
numericInput('volA','Vol of Vehicle_A(ml)',0),
numericInput('volB','Vol of Vehicle_B(ml)',0),
numericInput('volC','Vol of Vehicle_C(ml)',0),
br(),
actionButton('save','Save')
),
mainPanel(
textOutput('nsc'),
verbatimTextOutput('instruct'),
uiOutput("hot"),
hr(),
uiOutput('hot2')
)
)
)
#SERVER
server=function(input, output) {
global <- reactiveValues()
observeEvent(input$save, {
global$data[[length(global$data) + 1]] = data.frame(ExpID=input$expid,NSC=input$nsc,Stock.conc=input$stkcon,
Repeats=input$Repeat,Amt=input$amt,vol=input$vehicle,
stringsAsFactors = F)
})
observeEvent(input$save, {
global$ditto[[length(global$ditto) + 1]] = data.frame(group=input$grp,No_of_mice_dosed=input$micedose,dose=input$dose,dose_conc=input$doseconc,
No_vial=input$numvial,vol_Vehicle_A=input$volA,vol_Vehicle_B=input$volB,vol_Vehicle_C=input$volC,
tot_vol=input$volA+input$volB+input$volC,stringsAsFactors = F)
})
observeEvent(input$save, {
for(nr in 1:length(global$data)){
local({
df <- global$data[[nr]]
output[[paste0("hot", nr)]] <- renderRHandsontable(rhandsontable(df))
})
}
})
observeEvent(input$save, {
for(nr in 1:length(global$ditto)){
local({
df<-global$ditto[[nr]]
output[[paste0('hot2',nr)]] <- renderRHandsontable(rhandsontable(df))
})
}
})
output$instruct<-renderText({input$save
paste(isolate(input$nsc),isolate(input$instruct),sep='\n')
})
output$hot <- renderUI({
lapply(1:length(global$data), function(nr) rHandsontableOutput(paste0("hot", nr)))
})
output$hot2<-renderUI({
lapply(1:length(global$ditto), function(nr) rHandsontableOutput(paste0("hot2", nr)))
})
}
shinyApp(ui = ui, server=server)
我想要的應用MINIC這個excel表格,通知欄的金額是如何爲每個表(提交)不同。
你的意思,你想,如果按下按鈕,下一次,並檢查是否有什麼改變的行追加到表? –
我希望應用程序每次按下按鈕時都會創建一對錶格(以及textouput和verbatimtextoutput作爲標題)。 –