6

DT および magrittr パッケージを使用して、データ テーブル オブジェクトに対して 2 つの異なる書式設定操作を実行しようとしています。1 つはヘルパー関数 formatRound() を使用し、もう 1 つは JavaScript として datatable 関数の rowCallback オプションに渡されます。

フォーマット操作のいずれかを個別に実行すると、データテーブルは予想されるフォーマットでレンダリングされます。ただし、両方を一緒に実行すると、データテーブルは空白になりますが、エラーは発生しません。

このコードは、私が説明している動作を示しています。

library(magrittr)
library(DT)

df = data.frame(matrix(rnorm(20), nrow=10))

datatable(
  data = df
) %>%
  formatRound(c("X1", "X2"), 1)

#table renders as expected

datatable(
  data = df,
  options = list(
    rowCallback = JS("
     function( row, data, index ) {
       if ( index > 2 ) {
        $(row).css('background-color', '#EDEDED');
       }
       else if ( index > 0 ) {
        $(row).css('background-color', '#DEDEDE');
       }
       else {
        $(row).css('background-color', '#D3D3D3');
       }
     }"
    )
  )
)

#table renders as expected

datatable(
  data = df,
  options = list(
    rowCallback = JS("
     function( row, data, index ) {
      if ( index > 2 ) {
        $(row).css('background-color', '#EDEDED');
      }
      else if ( index > 0 ) {
        $(row).css('background-color', '#DEDEDE');
      }
      else {
        $(row).css('background-color', '#D3D3D3');
      }
     }"
    )
  )
) %>%
  formatRound(c("X1", "X2"), 1)

#table renders as blank but with no error returned
4

1 に答える 1