0

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()) を試しましたが、役に立ちませんでした。

何か案は?

4

1 に答える 1