web-dev-qa-db-ja.com

RShinyのデータテーブルにインライン編集を実装する方法

Rシャイニーウェブアプリを実行しています。データテーブルを使用してデータを表示しました。しかし、私はテーブルのセルのインライン編集が必要です。私はそれをすることができません。誰かが私を導くことができますか?

これが私のコードです

# UI.R

fluidRow(
         column(4,dataTableOutput("numericalBin")),
         column(8,h1("numericalBin_Chart")))
)

# Server.R

output$numericalBin <- renderDataTable({
    mtcars
  },options = list(    
    lengthChange=FALSE,
    searching=FALSE,
    autoWidth=TRUE,
    paging=FALSE
  ))

セルを編集したい。これが私が効果を出したいリンクです:
https://editor.datatables.net/examples/inline-editing/simple.html

オプションリストに追加するものが必要なのかもしれませんが、適切なものが見つかりません。

16
arupnathdaw

@dracodocによって提案されたDTプロトタイプとは別に、別のオプションは rhandsontable package を使用することです。

編集:@hveigと@Munawirのコメントによると、実用的なサンプルコードの一部が添付されています( ランダムな例のページ から採用):

library(shiny)
library(rhandsontable)

shinyApp(
  shinyUI(
    fluidRow(
      rHandsontableOutput("hot")
    )),

  shinyServer(function(input, output, session) {
    values = reactiveValues()

    data = reactive({
      if (!is.null(input$hot)) {
        DF = hot_to_r(input$hot)
      } else {
        if (is.null(values[["DF"]]))
          DF = mtcars
        else
          DF = values[["DF"]]
      }


      values[["DF"]] = DF
      DF
    })

    output$hot <- renderRHandsontable({
      DF = data()
      if (!is.null(DF))
        rhandsontable(DF, stretchH = "all")
    })
  })
)
13
xclotet