2017-01-03 5 views
0

これは以前に尋ねられましたが、私にとってはうまくいくコードを立てることができませんでした。私はR ShinyのDataTableで作業しています。私は、DataTableを生成し、最初の列ではなく2列目にデフォルトで並べ替える必要があります。これは私がserver.Rに持っているものです:データテーブルを持つ行の整列

output$TabVals <- DT::renderDataTable({ 
    DT::datatable(TableData(), 
       options = list(pageLength = 25, 
          searching = FALSE, 
          paging = FALSE), 
       rownames = FALSE) %>% 
     formatRound(2, digits = 0) 
}) 

これは素晴らしいです。私が他の人が見つけたのは、オプションorder = list(2, 'asc')に含まれていました(2番目の列をソートしてデータを昇順にしたいからですが、その行を追加するとDataTableには何も表示されなくなります)。

I問題を再現するために一緒にこの例を置く:

c1 <- c("a", "b", "c") 
c2 <- c(1, 2, 3) 
test <- cbind(c1, c2) 

test1 <- DT::datatable(test) 
test2 <- DT::datatable(test, options = list(order = list(2, 'desc'))) 

test1がいいのDataTableを作るtest2が空白のテーブルを生成

私はrownames前に、例えばオプションの後に(コードの他の部分にorder = list(2, 'asc')を動かしてみました。 、パイプの後)、それは役に立たなかった。考えが高く評価されました!

答えて

0

私はすべてこれはあなたが後にしているものですわからないが、あなたは助け以下

library(data.table). 
c1 <- c("a", "b", "c") 
c2 <- c(1, 2, 3) 
test <- data.table(c1,c2) 
setkey(test,c2) 
test 
# or 
test[, some function in j, by = c2] 

希望のいずれかを試みることができます。

+0

これらのソリューションを適用する方法があるかもしれませんが、 'datatable()'呼び出しと互換性があるようにそれらをフォーマットしようとする試みが不足しています。私はShinyの境界内で、したがって 'renderDataTable({}) '関数の範囲内で作業しているので、その関数を使用していません。 – Clare

+0

Clare's Qは、JavaScriptライブラリ「DataTables」をラップする「DT」パッケージであり、data.framesを拡張する「data.table」パッケージに関するものではありません。残念ながら、名前は非常によく似ています。 – Uwe

関連する問題