我有15 years from 1993 to 2008
的每日数据。我想基于以感兴趣的当天为中心的31天窗口计算一年中每一天的文件中变量Open
的每日平均值。因此,15⨯31 = 465 dates
有助于统计一天。
在15年中,输出只是365个值
该文件可以从这里下载: http://chart.yahoo.com/table.csv?s=sbux&a=2&b=01&c=1993&d=2&e=01&f=2008&g=d&q=q&y=0&z=sbux&x=.csv 并且可以阅读:
df = read.csv("C:/data/table.csv", header = TRUE, stringsAsFactors = FALSE)
答案 0 :(得分:1)
library(data.table)
df <- as.data.table(read.csv('http://chart.yahoo.com/table.csv?s=sbux&a=2&b=01&c=1993&d=2&e=01&f=2008&g=d&q=q&y=0&z=sbux&x=.csv',header = TRUE, stringsAsFactors = FALSE))
df[, MAOpen := filter(Open, rep(1, 31) / 31)]
df[, Date := as.POSIXct(Date)]
df[, YDay := yday(Date)]
df[, mean(MAOpen), by = YDay]