首页 > 解决方案 > 第二行作为列标题使用 R Shiny 中的 DT 数据表

问题描述

我有一个输出要使用 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。谢谢。

标签: rshinydplyr

解决方案


首先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) })


推荐阅读