我正在尝试使用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”作为值。我不想添加另一个列或生成另一个数据框来执行此操作,但我不知道该怎么做。我尝试使用强制转换功能,但它只将“卖出”变量视为值。有什么想法吗?
答案 0 :(得分:2)
您可以使用dplyr
和tidyr
执行此操作,但此脚本在技术上会创建新列作为其转换的一部分。
library(dplyr)
library(tidyr)
x %>%
mutate(cefetot = cefe/tot) %>%
select(number, hour, cefetot) %>%
spread(key = hour, value = cefetot)