2017-08-01 11 views
0

データフレームの既存の値で編集可能なrenderTableを生成するコード(別の投稿と同様)Insert a numeric input for each row - R Shinyがあります。今私は値を編集した後、同じデータフレームに更新された値を保存したい。それ、どうやったら出来るの?編集可能なレンダリングテーブルと値の保存 - Rシャイニー

shiny::runApp(list(
ui = basicPage(
tableOutput("My_table") 
), 
server = function(input, output, session) { 

My_table = matrix( 
    c(1:100), 
    nrow=20, 
    ncol=5) 

output$My_table <- renderTable({ 
    input1 <- paste0("<input id='a", 1:nrow(My_table), "'"," value='",My_table[,1],"'" ," class='shiny-bound-input' type='character' style='width: 50px;'>") 
    input2 <- paste0("<input id='b", 1:nrow(My_table), "'"," value='",My_table[,5],"'" ," class='shiny-bound-input' type='number' style='width: 50px;'>") 
    cbind(input1, My_table[,c(2,3,4)], input2) 
}, sanitize.text.function = function(x) x) 

} 
)) 

助けていただければ幸いです。ありがとう。

+0

あなたはこのに興味がある可能性があり:http://stla.github.io/stlapblog/posts/shiny_editTable.html –

答えて

0

私はそこに約半分を得ることができます。テーブルの動的入力を静的な値で解析し、新しいテーブルを作成し、新しいテーブル(または配列)をShinyに渡す必要があります。また、テーブルをクリックしてレスポンスを取得するよりも、おそらく良い方法があります。とにかく

は、ここに行く:

shiny::runApp(list(
    ui = basicPage(
    # a div named mydiv 

    tableOutput("myTable"), 
    # javascript code to send data to shiny server 
    tags$script(' 
    document.getElementById("myTable").onclick = function() { 
       var value = $("table tr").value(); 
       Shiny.onInputChange("mydata", value); 
       }; 
       '), 
    tableOutput("results") 
), 
    server = function(input, output, session) { 

    My_table = matrix( 
     c(1:100), 
     nrow=20, 
     ncol=5) 

    output$myTable <- renderTable({ 
     input1 <- paste0("<input id='a", 1:nrow(My_table), "'"," value='",My_table[,1],"'" ," class='shiny-bound-input' type='character' style='width: 50px;'>") 
     input2 <- paste0("<input id='b", 1:nrow(My_table), "'"," value='",My_table[,5],"'" ," class='shiny-bound-input' type='number' style='width: 50px;'>") 
     cbind(input1, My_table[,c(2,3,4)], input2) 
    }, sanitize.text.function = function(x) x) 

    output$results = renderTable({ 
     input$mydata }) 
    } 

)) 
関連する問題