【发布时间】:2017-12-19 19:12:25
【问题描述】:
我在 R 中编写了以下函数来计算列名为 DATE (YYYY-MM-DD)、ID、VAR1 和 VAR2 的数据帧的每个日期和前一天的两天平均 VAR。没有遗漏的日期。
df <- data.frame
TWODAY <- function(df){
df$TWODAY_VAR1 <- NA
for(j in 2:length(df$VAR1)){
df$TWODAY_VAR1[j] <- mean(df$VAR1[j:(j-1)])
}
df$TWODAY_VAR2 <- NA
for(j in 2:length(df$VAR2)){
df$TWODAY_VAR2[j] <- mean(df$VAR2[j:(j-1)])
}
return(df)
}
然后我使用 ddply 将此函数应用于我的数据框:
df <- ddply(df, "ID", TWODAY)
但是,我的数据框包含超过 13,000,000 个观察值,而且运行速度非常慢。有人对我如何编辑代码以提高效率有任何建议吗?
任何建议将不胜感激!
【问题讨论】:
-
我觉得这个问题适合的地方是Code Review Stack Exchange。
-
你应该给出一个可重现的例子stackoverflow.com/questions/5963269/…
标签: r performance plyr