2015-11-26 137 views
0

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

First table

所以我想有一个表,如波纹管:

New Data Table

server.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 
+1

查找'dcast',你想把你的数据从长转变为宽 – Shape

+0

非常感谢。这正是我想要的。 http://www.cookbook-r.com/Manipulating_data/Converting_data_between_wide_and_long_format/ – user

回答

0

我已经使用库(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) 
相关问题