如何在R中使用计算字段执行数据透视表?

时间:2017-04-06 00:59:45

标签: r pivot-table

我正在尝试使用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

我需要构建一个数据透视表,使用“number”变量作为行,“hour”作为列,结果“cefe / tot”作为值。我不想添加另一个列或生成另一个数据框来执行此操作,但我不知道该怎么做。我尝试使用强制转换功能,但它只将“卖出”变量视为值。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您可以使用dplyrtidyr执行此操作,但此脚本在技术上会创建新列作为其转换的一部分。

library(dplyr)
library(tidyr)

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