【问题标题】:How convert data between long and wide format in datatable如何在数据表中的长格式和宽格式之间转换数据
【发布时间】:2015-11-26 01:40:39
【问题描述】:

我想获取 kpi 列的值并将这些值设置为新数据表的标题。在这个应用程序中,我希望管理员创建 KPI 并让用户填充第二个数据表中的值。

所以我想要一个如下表:

服务器.r

GetTableMetadata <- function() {
   fields <- c(id = "Id", 
               name = "Name", 
               used_shiny = "Used Shiny", 
               r_num_years = "R Years")

   result <- list(fields = fields)
   return (result)
 }
    #display table in wide format
     output$viewresponses<-DT::renderDataTable({

      viewDF<-(as.data.frame(responses))
      viewDF %>% spread(GetTableMetadata()$fields$name,GetTableMetadata()$fields$used_shiny)[-1]
      })

我得到的错误是:

Error : Invalid column specification

【问题讨论】:

标签: r shiny data.table shinydashboard


【解决方案1】:

我已经使用 library(tidyr) 包将长格式转换为宽格式

KPI <- c('cost','time','quality','time','time')
 measurements <- c(1, 2, 3,2,1)
kpi.data <- data.frame(KPI, measurements)

kpi.data如下(长格式):

  KPI measurements
1    cost            1
2    time            2
3 quality            3
4    time            2
5    time            1

通过使用 tidyr 的扩展功能,长格式将转换为宽格式

kpi.data %>% spread(KPI,measurements)

【讨论】:

    猜你喜欢
    • 2017-05-11
    • 1970-01-01
    • 2019-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-25
    相关资源
    最近更新 更多