Vas*_*sim 2 sorting r shiny dt
library(DT)
seq_dates <- data.frame(dates = as.Date("2017-01-01") + 1:6 * 100)
datatable(seq_dates) %>% formatDate(1, "toDateString")
Run Code Online (Sandbox Code Playgroud)
我在查看器窗格中得到一个数据表,该数据表以以下格式“日期:2017年5月22日”显示日期。
问-如何将日期栏的格式设置为“ MM-YY”
如果我做,
dplyr::mutate(seq_dates, dates = format(dates, format = "%b-%Y")) %>%
datatable()
Run Code Online (Sandbox Code Playgroud)
我得到了所需的日期格式,但是在第二种情况下,列排序不起作用(排序是按字母而不是日期进行的。)
PS-我正在闪亮地实现这一点。
小智 5
您好,在这些情况下,我认为最好的解决方案是添加一个虚拟列,使其原始格式的日期与date列根据DUMMY列中的值进行排序。这在Datatable中很容易做到。下面的示例代码。
seq_dates <- data.frame(dates = as.Date("2017-01-01") + 1:6 * 100)
datatable(seq_dates %>% mutate(DUMMY = dates,dates = format(dates, format = "%b-%Y")),
options = list(
columnDefs = list(
list(targets = 1,orderData = 2),
list(targets = 2, visible = FALSE)
)
))
Run Code Online (Sandbox Code Playgroud)
小智 0
正如我所见,将"%b-%y"“日期”转换为日期格式并不是一件容易的事情......
如果您不太执着于显示"%b-%y"格式,最简单的方法是使用"%Y-%m"or "%y-%m"format ,过滤器将正常工作:
library(DT)
seq_dates <- as.data.frame(seq(Sys.Date() - 100, Sys.Date(), by = "m"))
seq_dates <- format(seq_dates, format = "%y-%m")
datatable(seq_dates)
#resulting in
#1 2017-02
#2 2017-03
#3 2017-04
#4 2017-05
#or
#1 17-02
#2 17-03
#3 17-04
#4 17-05
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2612 次 |
| 最近记录: |