我在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))
答案 0 :(得分:3)
无需在此处循环,您只需更改变量以分割数据框,
ddply(DATA, .(day,month), summarise, msteps = mean(steps))