formattable を使用して、光沢のあるアプリのテーブルに条件付きの色の書式設定を実装しています。たとえば、値 2 未満のセルを緑、5 を超えるセルを赤、2 から 5 の間のセルをオレンジ色にしたいとします。フォーマッタ関数を次のように記述します。
formatter(
"span",
style = x ~ style(
color = 'white',
'background-color' =
ifelse(x > 5, "red",
ifelse(x > 2 & x <= 5, "orange",
"green"))))
しかし、私が本当にやりたいことは、これらの色のしきい値、つまり 2 と 5 をユーザーが変更できるようにすることです。
user_low と user_high がユーザーによって定義されているとしましょう:
col_format <-
formatter(
"span",
style = x ~ style(
color = 'white',
'background-color' =
ifelse(x > input$user_high, "red",
ifelse(x > input$user_low & x <= input$user_high, "orange",
"green"))))
このフォーマッタを光沢のあるアプリ内の formattable にフィードしようとすると、次のようになります。
formattable(mtcars, col_format)
次のエラーが表示されます。
'col_format' of mode 'function' was not found
一見、input$user_low と input$user_high は評価されず、代わりにフォーマッタ内で文字列として扱われます。eval()、eval(parse()) を試しましたが、役に立ちませんでした。
何か案は?