2015-11-26 140 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) 
相關問題