2017-04-06 80 views
2

我试图构建透视表与R.计算字段我的数据帧类似于此:如何在R中使用计算字段来创建数据透视表?

number hour tot  cefe sell 
     1 09:00 50   2  1 
     1 10:00 52  NA NA 
     1 11:00 72   4  1 
     1 12:00 96   3 NA 
     1 13:00 90   4  1 
     1 14:00 98   2  1 
     2 08:00 38   4  1 
     2 09:00 427  16  2 
     2 10:00 493  16  1 
     2 11:00 340  16 NA 
     2 12:00 571  20  2 
     2 13:00 547  23  2 
     2 14:00 578  25  4 

我需要使用“数字”的变量作为行以构造枢轴表中,“小时“作为列和”cefe/tot“的值作为结果。我不想添加另一列或生成另一个数据框来做到这一点,但我不知道该怎么做。我试着用转换函数,但它只考虑“卖”变量作为值。任何想法?

回答

2

您可以dplyrtidyr做到这一点,虽然这个脚本并在技术上创建一个新的列作为转型的一部分。

library(dplyr) 
library(tidyr) 

x %>% 
    mutate(cefetot = cefe/tot) %>% 
    select(number, hour, cefetot) %>% 
    spread(key = hour, value = cefetot) 
+1

或类似的'X%>%GROUP_BY(数,小时)%>%综述(cefetot = CEFE/TOT)%>%的价差(小时,CT)' –

+1

你的第一个答案效果很好,谢谢您帮帮我! –

相关问题