2017-08-09 6 views
1

ユーザーあたりのデータ使用量に関するレポートをプログラミングしています。R Shiny:表示値とソート値の比較

15360や0.32などの値を表示する代わりに、私は人間の名前(姓)、ユーザーID(文字)、ユーザーのディスク使用量(メガバイト単位)の4つの列を持つデータフレームを持っています。

2つの値を指定することはできますか:1つは表に表示されますが、2つの値を指定することはできますか?

答えて

1

はい、DTを使用してデータフレームをShinyに表示しているとします。columnDefsを使用して、非表示列をソースとして使用して別の列を並べ替えることができます。 :

library(DT) 
df=data.frame(name= LETTERS[1:10],sizebytes= runif(10,1,2000000000)) 
df$size = sapply(df$sizebytes, function(x) {utils:::format.object_size(x, "auto")}) 
df = df[order(df$sizebytes,decreasing=TRUE),] 

# here, 2 and 3 are the column indices of 'size' and 'sizebytes' respectively. 
columndefs = list(list(orderData=2, targets= 3), 
        list(targets= 2,visible= F,searchable= F)) 

datatable(df,options=list(columnDefs = columndefs)) 

enter image description here

あなたが見ることができるように、私たちは、ソート列sizebytesが、唯一の表示欄sizeこともできます。ユーザーがsize列に基づいてデータテーブルをソートするときはいつも、sizebytesの数値が実際にテーブルをソートするために使用されます。お役に立てれば!

+0

ありがとう、それは完璧に動作します! –

関連する問題