我有一个包含如下数据的大型数据框:
customer usage hour day temp
5 0.13 07 14 59
5 0.12 07 14 51
5 0.11 08 14 53
5 0.19 09 15 56
12 0.19 07 15 60
12 0.13 07 14 50
12 0.13 07 14 40
9 0.16 08 03 47
9 0.16 08 15 59
9 0.17 08 15 53
我想要做的是,为每位客户添加每小时的使用量,并将每小时的平均温度计算在一起,以天为单位。换句话说,在每个客户群中,我想要一个'用法'总和和一个临时的'每小时和每天的平均值。因此,对于此示例代码,理想输出将是
customer SumUsage hour day Averagetemp
5 0.25 07 14 55
5 0.11 08 14 51
5 0.11 09 15 56
12 0.19 07 15 60
12 0.26 07 14 45
9 0.16 08 03 47
9 0.33 08 15 56
我希望这是有道理的。我是R的新手,我似乎无法让它正常工作。只是为了再次重申我想要的输出:每个客户都有多个用法'在一个月中的多天中每小时输出多次。还有一个临时的'阅读每个用法'输出。我想结合每个客户的所有小时读数。因此,对于每一天的每个客户,每天的每个小时应该有一个“使用”的总和。每小时的输出,以及平均时间'所有这些产出。
答案 0 :(得分:1)
您可以使用summarise
中的dplyr
:
require(dplyr)
df %>%
group_by(customer, day, hour) %>%
summarise(SumUsage = sum(usage), Averagetemp = mean(temp))
或使用data.table
require(data.table)
setDT(df)[, list(SumUsage = sum(usage),
Averagetemp = mean(temp)), by = list(customer, day, hour)]