拆分数据帧并计算R中数据子集的平均值

时间:2013-10-15 17:15:52

标签: r function dataframe

我在R中有这个数据框:

steps   day         month  
4758    Tuesday     December
9822    Wednesday   December
10773   Thursday    December

我想迭代数据框并根据month列中的值将函数应用于steps列。我正在尝试计算每个工作日每个月的平均步数。

我想输出一个新的数据框,如周日重复,但我只有每天的平均值:

average.steps   day         month
4500            Tuesday     December
9000            Wednesday   December
1000            Thursday    December

我可以弄清楚如何计算整个数据框的平均值,但是想要使用for循环将其应用于同一个月的步长值。

avgsteps <- ddply(DATA, "day", summarise, msteps = mean(steps))

我对for功能的基本想法是:

f <- function(m in month) {ddply(DATA, "day", summarise, msteps = mean(steps))}

但它不会处理它并抛出错误:

Error: unexpected 'in' in "f <- function(m in"

非常感谢任何帮助!

编辑:

所以我尝试了@ agstudy的建议修复(下面),它获得了正确的数据结构(每个工作日的单个值,每个月),但分配给每一天的值是相同的。我有点困惑可能会出错。

steps.month.day.avg <- ddply(steps.month.day, .(fitbit.day,fitbit.month), summarise, msteps = mean(steps))

1 个答案:

答案 0 :(得分:3)

无需在此处循环,您只需更改变量以分割数据框,

 ddply(DATA, .(day,month), summarise, msteps = mean(steps))
相关问题