"rhandsontable"に基づくテーブルが更新されたときに検証スキームを作成したいと思います。私は2つの列を持っています:MinとMaxと私は、列Maxのセルが更新されると、同じ行の前の列Minより大きい値で更新することができます。 hot_colsレンダラーを使用し、0より大きい減算などで検証することは可能かもしれませんが、一般的には "rhandsontable"や "hansontable"には慣れていませんが、これは可能だと思いますが、どういうわけかわかりません。ありがとう。rhandsontable Rパッケージを使用したセルの数値検証
玩具例:
library(shiny)
library(rhandsontable)
if (interactive()) {
ui <- fluidPage(
rHandsontableOutput('table'),
tableOutput('table1')
)
server <- function(input, output,session) {
values <- reactiveValues(df=data.frame(Parameter=c('A','B','C'),Min=c(10,20,30),Max=c(20,30,40)))
observe({
if(!is.null(input$table)){
values$df <- hot_to_r(input$table)
output$table1<-renderTable(values$df)
}
})
output$table<-renderRHandsontable({
rhandsontable(values$df)%>%
hot_col("Parameter", readOnly = TRUE)%>%
hot_validate_numeric(col='Min', min = 1, max = 50,allowInvalid = FALSE)%>%
hot_validate_numeric(col='Max', min = 1, max = 50,allowInvalid = FALSE)
})
}
shinyApp(ui, server)
}
サーバー側でこの種の細かい検証を行うと考えましたか?入力されたものは何でもサーバー上で取得し、それを分析してOKかどうかを判断できます。クライアント側は、一般的なデータ検証(範囲:num vs charなど)に適しています。サーバーケースは、あなたが説明するもののような、より挑戦的なもののための正しいケースと思われます。 – Enzo
こんにちはエンツォ、私はユーザーがいつでも変更できる初期値で "フォーム"としてrhandsontableを使用しています。別のウィジェットを使用してデータを入力することができます。あなたが多くのパラメータを持っていて、これらが "オンザフライ"で生成されている場合、私はこの種のテーブルを使って簡単に値を入力するオプションを考えていましたが、 (例:min-max by column)しかし、私はどのように2つの列を関連付けるための条件を含めるかはしません。 – Uli
min 20とmax 10を入力すると、明らかにエラーになります。だから、私はこれらの値を検証し、続行するか、エラーメッセージを表示する必要がいくつかの関数をいくつかのjavascriptを使用して。常にサーバー側で考える。レンダラー関数を使用して固定値などより小さいか大きい場合にセルの色を変更することは可能ですが、この動作を2つの列に拡張する方法はわかりません。これはあなたに合っていますか? – Uli