使用闪亮输入

时间:2016-10-09 15:22:25

标签: dataframe shiny row

基本上,我希望用户在闪亮的界面中提供值向量:X = 1,2,3和Y = 2.3,4.5,6.7

得到一个这样的表:

X Y    
1 2.3  
2 4.5  
3 6.7  

但是,我只能连续获取值:

X        Y    
1,2,3    2.3,4.5,6.7 

服务器

    library("shiny")
shinyServer(
  function(input,output,session){

    Data = reactive({
      if (input$submit > 0) {
        df <- data.frame(x=input$x,y=input$y)
        return(list(df=df))
      }
    })

    output$table <- renderTable({
      if (is.null(Data())) {return()}
      print(Data()$df)
    }, 'include.rownames' = FALSE
    , 'include.colnames' = TRUE
    , 'sanitize.text.function' = function(x){x}
    )

  })

UI

library("shiny")    
shinyUI(
  pageWithSidebar(
    headerPanel("textInput Demo")
    ,
    sidebarPanel(
      wellPanel(
        textInput('x', "enter X value here","")
        ,
        textInput('y', "enter Y value here","")
        ,
        actionButton("submit","Submit")
      )
    )
    ,
    mainPanel(uiOutput('table'))
  ))

有关如何解决此问题的任何想法?

事先感谢很多,

1 个答案:

答案 0 :(得分:1)

textInput返回一个字符串。所以你得到的是一个字符串"1,2,3"而不是三个数字。将字符串转换为数字向量

x = as.numeric(unlist(strsplit(input$x, ',')))