基本上,我希望用户在闪亮的界面中提供值向量: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'))
))
有关如何解决此问题的任何想法?
事先感谢很多,
答案 0 :(得分:1)
textInput
返回一个字符串。所以你得到的是一个字符串"1,2,3"
而不是三个数字。将字符串转换为数字向量
x = as.numeric(unlist(strsplit(input$x, ',')))