2017-02-20 5 views
0

ユーザーから名前や性別などの入力値を受け取る光沢のあるWebアプリケーションを構築しています。これらの値をデータフレームに変換したいのですが、"エラー:クラスを強制できません" c( "shiny.render.function"、 "function") "to data.frame"エラー。エラー:クラス "c(" shiny.render.function "、" function ")をdata.frameに強制変換できません

nText<- eventReactive(input$click_counter, valueExpr = { 
    a<- renderText(input$name) 
    b<- renderText(input$gender) 
    c<- renderText(input$college) 
    d<- renderText(input$team) 
    e<- renderText(input$score) 

    return(data.frame(player=a,college=b,gender=c,team=d,score=e)) 
    }) 

    output$nText<- renderDataTable({ 
    nText() 
    }) 

そして、これは私がui.Rファイル内に持っているものである:ここで

は、私がserver.Rファイル内に持っているものである

actionButton("click_counter","Submit"), 
dataTableOutput("nText") 
+0

a、b、c、d、またはeの構造はまさにあなたの考えですか?言語要素を持つデータフレーム列を持つことができないことに気づいていますか?リストを使用しているはずですか? –

+0

'renderText()'で全ての 'inputs'をラップしないでください – Yang

答えて

1

@Yangが必要に言ったようにあなたの入力の周りから 'renderText'を削除してください。 'click_counter'のクリックごとに入力を保存したい場合は、 'reactiveValues'を使用できます。私は入力後にあなたのデータで何をしたいかによって、以下の両方のオプションの実例を挙げました:

ui <- fluidPage(title = "", 

       sidebarLayout(

        sidebarPanel(width = 6, 
           textInput("name", "Name"), 
           textInput("gender", "Gender"), 
           actionButton("click_counter","Submit") 
       ), 
        mainPanel(
        dataTableOutput("nText"), 
        dataTableOutput("nText2") 

       )) 

) 

server <- function(input, output, session) { 

    values <- reactiveValues() 
    values$df <- data.frame() 

    mdf <- eventReactive(input$click_counter,{  
    name <- input$name 
    gender <- input$gender 

    da <- data.frame(name, gender) 
    return(da) 
    }) 

    observeEvent(input$click_counter, { 
    name <- input$name 
    gender <- input$gender 

    da <- data.frame(name, gender) 

    values$df <- rbind(values$df, da) 
    }) 

    output$nText<- renderDataTable({ 
    mdf() 
    }) 

    output$nText2<- renderDataTable({ 
    values$df 
    }) 
} 

shinyApp(ui = ui, server = server) 
+0

あなたの例を共有してくれてありがとう:) – Oleole

+0

ボタンをクリックするとテキストボックス内のテキストが消えるような関数を知っていますか? – Oleole

+0

'updateTextInput'が必要です。この質問をご覧ください:http://stackoverflow.com/questions/24265980/reset-inputs-button-in-shiny-app – Pete900

関連する問題