【问题标题】:how to obtain days between two dates in R如何在R中获取两个日期之间的天数
【发布时间】:2012-11-14 23:34:51
【问题描述】:

我有一个如下数据集:

money   date1    date2
"300"  "10/30 " " 11/1" 
"400"  "10/28 " " 10/31"
"360"  "10/28 " " 10/30"
"440"  "10/25 " " 10/28"
"620"  "10/21 " " 10/28"

我想为第一行提取两个日期之间的天数,例如 10/30、10/31 和 11/1。此外,我的代码应该为每个提取的日期分配一个数字。这个数字应该是钱/(天数)。例如,我想获得 10/30,10/31,以及 11/1 和 300/3(即=100),300/3,300/3。有人对此有任何想法吗?

【问题讨论】:

  • lubridate 如果您不知道该怎么做,也无济于事......

标签: r days


【解决方案1】:

这将给出该时间段内每天的总数

data$date1<-as.Date(paste(data$date1,"/2012"),  "%m/%d/%Y")
data$date2<-as.Date(paste(data$date2,"/2012"),  "%m/%d/%Y")
data$perday<-with(data, money/(date2-date1))
period <- as.Date(min(data$date1):max(data$date2), origin = "1970-01-01")
sum <- sapply(period, function(x) sum(data[x >= data$date1 & x <= data$date2, 'perday']))
sumperday<-as.data.frame(period, sum)

【讨论】:

  • 感谢您的代码,但我认为这不是解决方案。我可以计算两个日期之间的天数。我想要做的是提取两个日期之间的每一天,并为每一天分配等量的钱。问题是每行的天数不相等。有些线路有 3 天,有些线路有 4 天。如果我可以将天数放入一列,将金额放入另一列,这将解决我的问题。我希望这更清楚。这是我硬件的一小部分。任何帮助将不胜感激。
  • @JohnSmith 我假设您知道,如果不指定年份,如果恰好发生在 2 月底附近,您将永远无法正确确定每天之间的天数。如果这不是问题,您可能只想调查seq.Date
  • 好点!我将只使用 2012 年的数据。我会调查我的数据..谢谢你告诉这个...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
相关资源
最近更新 更多