繁体   English   中英

如何查找当前和上个月的所有日期?

[英]How to find all dates from the present and previous month?

我有桌子

EmployeeSalary:

Date       | Salary
01.12.2016 | 2000
01.02.2016 | 3000
03.02.2016 | 5000
01.03.2017 | 1000
30.01.2017 | 5000
10.03.2017 | 1300

当系统日期为2017年3月13日时。 如何获取当前月份日期和过去月份日期(即从2月1日到系统日期)。

我的代码是:

start= format(Sys.Date() - 30, '%Y-%m-01') 
end=Sys.time() 
while (start<end)
{
  print(EmployeeSalary)
  EmployeeSalary$"Date" = EmployeeSalary$"Date"+1
}

我得到的错误:

错误:二进制运算符的非数字参数

预期输出为:

EmployeeSalary:

Date       | Salary
01.02.2016 | 3000
03.02.2016 | 5000
01.03.2017 | 1000
10.03.2017 | 1300

这是一种方法:

R> dates <- seq(Sys.Date(), length=62, by=-1)
R> mon <- function(d) as.integer(format(d, "%m")) %% 12
R> dates[mon(dates) >= mon(Sys.Date())-1]
 [1] "2017-03-13" "2017-03-12" "2017-03-11" "2017-03-10" "2017-03-09"
 [6] "2017-03-08" "2017-03-07" "2017-03-06" "2017-03-05" "2017-03-04"
[11] "2017-03-03" "2017-03-02" "2017-03-01" "2017-02-28" "2017-02-27"
[16] "2017-02-26" "2017-02-25" "2017-02-24" "2017-02-23" "2017-02-22"
[21] "2017-02-21" "2017-02-20" "2017-02-19" "2017-02-18" "2017-02-17"
[26] "2017-02-16" "2017-02-15" "2017-02-14" "2017-02-13" "2017-02-12"
[31] "2017-02-11" "2017-02-10" "2017-02-09" "2017-02-08" "2017-02-07"
[36] "2017-02-06" "2017-02-05" "2017-02-04" "2017-02-03" "2017-02-02"
[41] "2017-02-01"
R> 

我们创建日期顺序倒退。 然后,我们创建辅助函数以获取日期的(整数值)月。

给定这两个条件,我们会将日期序列索引到与您的条件匹配的日期序列:从本月或前一个月开始。

通过采用“月模12”,我们也可以将一月与十二月进行比较。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM