在Shiny R中,我想要一个简单的方法将一个向量作为ui.R中的用户输入,然后想在服务器中的一个函数中使用它.我是新的有光泽,请帮忙.
Mik*_*ise 21
这里有一些简单的东西让你入门 - 祝你好运.请记住 - 下次发布一些代码或者你肯定会被投票:
library(shiny)
u <- shinyUI(pageWithSidebar(
headerPanel("Entering Vectors in Shiny"),
sidebarPanel(
textInput('vec1', 'Enter a vector (comma delimited)', "0,1,2")
),
mainPanel(
h4('You entered'),
verbatimTextOutput("oid1"),
verbatimTextOutput("oid2")
)
))
s <- shinyServer(function(input, output) {
output$oid1 <- renderPrint({
cat("As string:\n")
cat(input$vec1)
}
)
output$oid2<-renderPrint({
x <- as.numeric(unlist(strsplit(input$vec1,",")))
cat("As atomic vector:\n")
print(x)
}
)
}
)
shinyApp(ui = u, server = s)
Run Code Online (Sandbox Code Playgroud)
产量:
我知道这是一篇旧文章,但我遇到了用户输入向量作为闪亮输入的另一种方法 - 使用create = TRUE和multiple = TRUE选项selectizeInput()。稍微修改一下上面 Mike Wise 的代码示例:
library(shiny)
ui <- shinyUI(
pageWithSidebar(
headerPanel("Entering Vectors in Shiny")
, sidebarPanel(
selectizeInput(
"vec1"
, "Enter a vector"
, choices = NULL
, multiple = TRUE
, options = list(create = TRUE)
)
),
mainPanel(
h4("You entered")
, verbatimTextOutput("oid1")
, verbatimTextOutput("oid2")
)
)
)
server <- shinyServer(function(input, output) {
output$oid1 <- renderPrint({
req(input$vec1)
cat("As string:\n")
cat(input$vec1)
})
output$oid2 <- renderPrint({
req(input$vec1)
cat("As atomic vector:\n")
print(as.numeric(input$vec1))
})
})
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)