我在 R 中有这个数据框:
steps day month
4758 Tuesday December
9822 Wednesday December
10773 Thursday December
我想遍历数据框并根据月份列中的值将函数应用于步骤列。我正在尝试计算每个月每个工作日的平均步数。
我想像这样输出到一个新的数据框,工作日重复,但我每天只有平均值:
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))