使用 R 进行聚合并根据 "if" 标准计算 return 平均值
Use R to aggregate and return the mean based on "if" criteria
我想使用 aggregate
函数创建一个 table,其中包含列 date
(结构为日期)和 time.to.complete
(结构为 difftime) ,其中时间计算为平均值。 time.to.complete
数据具有负值。我想在计算平均值时排除所有负值。
目前,我的聚合函数如下所示:
mean.table<-aggregate(data$time.to.complete, list(data$date), mean)
我可以计算 time.to.complete 的总体平均值,不带负值:
average<-with(data, mean(data$time.to.complete[time.to.complete>0]))
但是,我不知道如何将这两个功能结合起来。
如有任何帮助,我们将不胜感激!
我们可以使用data.table
library(data.table)
setDT(data)[, .(MeanbyDate = mean(time.to.complete),
MeanOveralltime = mean(data$time.to.complete[data$time.to.complete > 0])), by = date]
如果我们想要分组依据 > 0
setDT(data)[, .(MeanbyDate = mean(time.to.complete),
MeanGreaterthan0 = mean(time.to.complete[time.to.complete > 0])), by = date]
我想使用 aggregate
函数创建一个 table,其中包含列 date
(结构为日期)和 time.to.complete
(结构为 difftime) ,其中时间计算为平均值。 time.to.complete
数据具有负值。我想在计算平均值时排除所有负值。
目前,我的聚合函数如下所示:
mean.table<-aggregate(data$time.to.complete, list(data$date), mean)
我可以计算 time.to.complete 的总体平均值,不带负值:
average<-with(data, mean(data$time.to.complete[time.to.complete>0]))
但是,我不知道如何将这两个功能结合起来。
如有任何帮助,我们将不胜感激!
我们可以使用data.table
library(data.table)
setDT(data)[, .(MeanbyDate = mean(time.to.complete),
MeanOveralltime = mean(data$time.to.complete[data$time.to.complete > 0])), by = date]
如果我们想要分组依据 > 0
setDT(data)[, .(MeanbyDate = mean(time.to.complete),
MeanGreaterthan0 = mean(time.to.complete[time.to.complete > 0])), by = date]