我是新手。我想知道如何使用“textInput”向闪亮的服务器提交三个字符串以创建数据帧,然后将此数据帧写入本地文件。
这是我的脚本。但它不起作用。任何帮助表示赞赏。谢谢!
UI.R
shinyUI(fluidPage(
fluidRow(
absolutePanel(
helpText(h5("Submit new gene.")),
wellPanel(
column(4, textInput('symsub', "Gene symbol",value="")),
column(4, textInput('msusub', "MSU genomic locus",value="")),
column(4, textInput('rapsub', "RAPdb genomic locus",value="")),
actionButton("submit1", strong("Submit"))
),
textOutput("mytext20"),
p(HTML("<b><div style='background-color:#FADDF2;border:1px solid
blue;'></div></b>")),
br(),
right=5, left=10
)
)
))
server.R
write.gene <- function(df) {
write.table(df, file="gene.info", sep="\t", quote=F, row.names=F)
}
#### Shiny
shinyServer(function(input, output) {
geneNew <- reactive({
if (input$submit1>0) {
df.gene <- data.frame(Symbol=input$symsub, MSU=input$msusub, RAPdb=input$rapsub,
stringsAsFactors=FALSE)
write.gene(df.gene)
} else {NULL}
})
output$mytext20 = renderText({
input$submit1
})
}
答案 0 :(得分:2)
你的反应导体:
geneNew <- reactive({
if (input$submit1>0) {
df.gene <- data.frame(Symbol=input$symsub, MSU=input$msusub, RAPdb=input$rapsub,
stringsAsFactors=FALSE)
write.gene(df.gene)
} else {NULL}
})
在您的代码中无处调用,因此永远不会执行。请改为使用观察者:
observe({
if (input$submit1>0) {
df.gene <- data.frame(Symbol=input$symsub, MSU=input$msusub, RAPdb=input$rapsub,
stringsAsFactors=FALSE)
write.gene(df.gene)
} else {NULL}
})