在R Shiny中使用DT数据表将第二行作为列标题

时间:2018-08-13 15:14:18

标签: r shiny dplyr

我有一个输出要使用DT :: datatable在闪亮的应用程序中呈现。

当前看起来像这样的输出,我想将第二行用作列标题:

tab1:
          V1      V2      V3      V4      V5      V6      V7      V8    
Month   Apr-17  May-17  Jun-17  Jul-17  Aug-17  Sep-17  Oct-17  Nov-17  
aaa     116.719 120.404 120.26  123.431 117.327 110.742 114.811 117.34  
bbb     76.118  75.976  76.215  76.134  77.19   78.519  78.258  74.522  

因此,当我要将行月份用作列标题时,请执行以下操作:

   app1 <-reactive({ tab1()%>% .[-1,]})

然后我使用数据表呈现它

 output$op1 <-renderDataTable({
    app1()
  })

我得到以下输出:

        V1    V2      V3      V4      V5      V6      V7      V8    
aaa     116.719 120.404 120.26  123.431 117.327 110.742 114.811 117.34  
bbb     76.118  75.976  76.215  76.134  77.19   78.519  78.258  74.522  

如何用月份名称替换v1,v2。谢谢。

1 个答案:

答案 0 :(得分:1)

首先在数据框中添加set_names,然后删除第一行:

df %>% set_names(unlist(.[1,])) %>% tail(-1) # or .[-1,]
#     Apr-17  May-17 Jun-17  Jul-17  Aug-17  Sep-17  Oct-17 Nov-17
#aaa 116.719 120.404 120.26 123.431 117.327 110.742 114.811 117.34
#bbb  76.118  75.976 76.215  76.134   77.19  78.519  78.258 74.522

对于您的情况:reactive({ tab1() %>% set_names(unlist(.[1,])) %>% tail(-1) })