【发布时间】:2016-09-13 09:53:47
【问题描述】:
我还需要你的帮助,因为我自己没有得到正确的结果。
我的数据看起来像这样:
product startdate enddate city cost double
1 1999-01-03 2001-02-01 Boston 8 0
2 2000-07-06 2001-11-24 New York 10,5 0
...
我想要的是一个表格,显示平均成本除以城市和季度。
到目前为止我做了什么:
df <- read_csv2("mydata.csv")
#subset data
double <- df$double
df2 <- subset(df,double==0)
#date class
startdate <- strptime(df2$startdate,format="%Y-%m-%d")
library(zoo)
quarter <- as.yearqtr(startdate,"%Y-%m-%d")
table <- tapply(cost,list(df2$city,quarter),mean)
我得到的表格可能是这样的:
City 2011 Q1 2011 Q2 2011 Q3
New York 10 11,2 11,7
Boston 9 9,5 9,9
我的问题是我有一个开始日期和一个结束日期。该表向我显示了取决于开始日期的季度。 我现在想得到同一张桌子,但宿舍应该包括结束日期。这意味着:如果 startdate 是 2006-01-01 并且 enddate 是 2006-08-01 我的项目在 2006 Q1、2006 Q2、2006 Q3 季度在线。 我的商品的价格一直是一样的,但是当我计算每个季度的平均价格时,价格应该包含在产品上线的每个季度中。
我所做的是更改结束日期的类别:
#enddate , date class
today <- Sys.Date()
df2[["enddate"]][is.na(df2[["enddate"]])] <- today
enddate <- strptime(df2$enddate,format="%Y-%m-%d")
现在我尝试了几件事,例如处理日期间隔和截止日期,但这根本不起作用。
感谢您的任何提示!
【问题讨论】:
标签: r date date-range