R 仅获取符合特定条件的列的平均值

R 仅获取符合特定条件的列的平均值,r,dataframe,R,Dataframe,我有一个如下所示的数据帧: id weekdays halflife 241732222300860000 Friday, Aug 31, 2012, 22 0.4166666667 241689170123309000 Friday, Aug 31, 2012, 19 0.3833333333 241686878137512000 Friday, Aug 31, 2012, 19 0.4

我有一个如下所示的数据帧:

id                              weekdays              halflife
241732222300860000  Friday, Aug 31, 2012, 22    0.4166666667
241689170123309000  Friday, Aug 31, 2012, 19    0.3833333333
241686878137512000  Friday, Aug 31, 2012, 19    0.4
241651117396738000  Friday, Aug 31, 2012, 16    1.5666666667
241635163505820000  Friday, Aug 31, 2012, 15    0.95
241633401382265000  Friday, Aug 31, 2012, 15    2.3666666667
我想得到在周一,然后在周二创建的项目的平均半衰期…等等。我的约会时间跨度超过6个月。请让我知道如何提供可复制的代码,因为我无法找到附加文件的方法

为了获得日期值,我使用了strtime和difftime。另外,我用maxdf$halflife找到了最大半衰期,如何找到它对应的id

可复制代码:

structure(list(id = c(241732222300860416, 241689170123309056, 
241686878137511936, 241651117396738048, 241635163505819648, 241633401382264832
), weekdays = c("Friday, Aug 31, 2012, 22", "Friday, Aug 31, 2012, 19", 
"Friday, Aug 31, 2012, 19", "Friday, Aug 31, 2012, 16", "Friday, Aug 31, 2012, 15", 
"Friday, Aug 31, 2012, 15"), halflife = structure(c(0.416666666666667, 
0.383333333333333, 0.4, 1.56666666666667, 0.95, 2.36666666666667
), class = "difftime", units = "mins")), .Names = c("id", 
"weekdays", "halflife"), row.names = c(NA, 6L), class = "data.frame")

可能有更好的方法获取周天数,但您可以像下面这样使用tapply df是数据框的名称:

days <- sub(",.*$", "", df$weekdays)
tapply(df$halflife, days, mean)

可能有更好的方法获取周天数,但您可以像下面这样使用tapply df是数据框的名称:

days <- sub(",.*$", "", df$weekdays)
tapply(df$halflife, days, mean)

要将可复制的数据放在帖子上,可以在数据框上使用类似于dputheaddataframe的内容。这里有更多详细信息:你想计算每个月和每个月内每天的平均值,还是只计算所有周一平均值、周二平均值等?@demt你用的是什么日期格式?你的第一个例子是另一种格式。我想如果我显示工作日,会更容易,因为我正在研究基于星期几的聚合,所以我将原始日期格式转换为具有工作日、月日、年、小时的日期格式。我可以把它换回来。阿伦:一般每周一换一次。所以,是后者。要将可复制的数据放在帖子上,可以在数据框上使用类似dputheadataframe的东西。这里有更多详细信息:你想计算每个月和每个月内每天的平均值,还是只计算所有周一平均值、周二平均值等?@demt你用的是什么日期格式?你的第一个例子是另一种格式。我想如果我显示工作日,会更容易,因为我正在研究基于星期几的聚合,所以我将原始日期格式转换为具有工作日、月日、年、小时的日期格式。我可以把它换回来。阿伦:一般每周一换一次。所以,后者。+1朱巴,sub就足够了。@Arun你说得对,编辑。我倾向于忘记gsub旁边有一个sub。+1朱巴,sub就足够了。@Arun你说得对,编辑。我倾向于忘记gsub旁边有一艘潜艇。