R:显示值与排序值

R:显示值与排序值,r,shiny,R,Shiny,我正在编写一份关于每个用户数据使用情况的报告。我有一个包含四列的数据框:名字、姓氏、用户Id(字符)和用户的磁盘使用率(兆字节) 我不想显示15360或0.32之类的值,而是想显示人类可读的值,比如15.36 GB或320 kB,包括单位。这需要将列数据转换为字符并破坏排序 是否可以提供两个值:一个在表中显示,另一个用于排序的(“规范”)值?是的,我假设您使用DT以闪亮的方式显示数据帧。您可以使用columnDefs以隐藏列作为源对另一列进行排序。例如: library(DT) df=data.

我正在编写一份关于每个用户数据使用情况的报告。我有一个包含四列的数据框:名字、姓氏、用户Id(字符)和用户的磁盘使用率(兆字节)

我不想显示15360或0.32之类的值,而是想显示人类可读的值,比如15.36 GB或320 kB,包括单位。这需要将列数据转换为字符并破坏排序


是否可以提供两个值:一个在表中显示,另一个用于排序的(“规范”)值?

是的,我假设您使用DT以闪亮的方式显示数据帧。您可以使用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))

如您所见,我们按列
sizebytes
进行排序,但只显示列
size
。每当用户根据
size
列对数据表进行排序时,都会使用
sizebytes
的数值对表进行实际排序。希望这能有所帮助