【问题标题】:Calculate Quarters R Code计算季度 R 代码
【发布时间】:2015-01-26 18:26:59
【问题描述】:

我有一个数据集,我需要计算从现在开始过去多少个季度,每个日期是。四分之一等于 92 天。

我认为我的大部分代码都编写正确,但计算季度部分是错误的。

我可以从 QTR 中删除日期吗?或者有没有更好的方法来计算季度。我也需要在不使用自定义包的情况下执行此操作。所以没有 lubridate、Datetime 等。

我想得到一个这样的数据框(这些结果都是编出来的):

日期差异 QTR

1 2014-06-24 342 天 4

2 1999-04-11 1201 天 137

3 1979-01-01 13000 天 1254

相反,我得到了这个:

日期差异 QTR

1 2014-06-24 342 天 4 天

2 1999-04-11 1201 天 137 天

3 1979-01-01 13000 天 1254 天

Date=c("2014-06-24","1999-04-11","1979-01-01")
Quarter=as.Date(Date, origin="1970-01-01")

Fun=function(Quarter){
Today=Sys.Date()
Diff=difftime(Today,Quarter[],units='days')
QTR=floor(Diff/92)
data.frame(Date,Diff,QTR)
}

Fun(Quarter)

【问题讨论】:

  • 你可以用as.vector()去除差异属性

标签: r


【解决方案1】:

添加as.numeric

Date=c("2014-06-24","1999-04-11","1979-01-01")
Quarter=as.Date(Date, origin="1970-01-01")

Fun=function(Quarter){
  Today=Sys.Date()
  Diff=difftime(Today,Quarter[],units='days')
  QTR=as.numeric(floor(Diff/92))
  data.frame(Date,Diff,QTR)
}

Fun(Quarter)
R> Fun(Quarter)
        Date       Diff QTR
1 2014-06-24   216 days   2
2 1999-04-11  5769 days  62
3 1979-01-01 13174 days 143
R> 

【讨论】:

  • 非常感谢斯泰迪!我发誓我在决定发布之前尝试了 as.numeric 没有运气。这是显而易见的解决方案!
猜你喜欢
  • 1970-01-01
  • 2014-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-28
  • 1970-01-01
相关资源
最近更新 更多