我正在尝试使用shinydashboard设置一个闪亮的应用程序,并且在大多数情况下,祝你好运.但是,我正在遇到一个我认为可以避免的侧边栏行为的怪癖,但还没有找到.
下面是一个小例子,它重现了我遇到的问题.基本上,有两个sidebarMenus - Menu One和Menu Two,每个都有两个menuSubItems.在菜单项中切换子项可以正常工作.所以,如果我想从subItemOne切换到subItemTwo,没有问题.我可以整天这样做.
我也可以跨菜单切换到subItems,这样从subItemOne跳转到subItemThree,这很好.问题在于试图切换回来.如果选择了subItemOne,我尝试转到subItemThree并返回 subItemOne,我无法做到.我必须去subItemTwo,然后我可以打开SubItemOne.
有没有办法纠正这个设置,以便我可以直接从subItemOne跳转到subItemThree(或两个和四个),然后再回来?
library('shiny')
library('shinydashboard')
# Sidebar #############################
sidebar <- dashboardSidebar(
width = 290,
sidebarMenu(
menuItem('Menu One', tabName = 'menuOne', icon = icon('line-chart'),
collapsible =
menuSubItem('Sub-Item One', tabName = 'subItemOne'),
menuSubItem('Sub-Item Two', tabName = 'subItemTwo')
)
),
sidebarMenu(
menuItem('Menu Two', tabName = 'menuTwo', icon = icon('users'),
collapsible =
menuSubItem('Sub-Item Three', tabName = 'subItemThree'),
menuSubItem('Sub-Item Four', tabName = 'subItemFour')
)
)
)
# Body #############################
body <- dashboardBody(
tabItems(
tabItem(tabName = 'subItemOne',
h2('Selected Sub-Item …Run Code Online (Sandbox Code Playgroud) 我有一些要以5%增量显示的数据,例如5-10%,10-15%等。为此,我有一个数据框将其存储为一个因子,水平为范围,标签是要显示的范围。例如,级别12.5将标记为10-15%。
但是,我在使用数据表正确排序时遇到了麻烦。
library('DT')
example <- data.frame(name = c('A', 'B', 'C', 'D'),
value = factor(c(7.5, 12.5, 7.5, 17.5),
levels = c(7.5, 12.5, 17.5),
labels = c('5-10%', '10-15%', '15-20%')))
datatable(example,
rownames = FALSE,
options = list(order = list(1, 'asc')))
Run Code Online (Sandbox Code Playgroud)
如您所见,它似乎是按字符串的第一个数字排序的,而不是按因子级别排序的。
关于如何获取数据表以整理因子水平而不是字符串的任何想法?(除了在将数据帧传递到数据表之前对其进行排序之外,我希望通过单击排序箭头可以在任一方向上对它进行正确排序)