添加会计月末

问题描述

我想将一个会计月末日期更改为R中的数据集。在我的公司中,会计月末日期应为21日。例如

12/22/2019至1/21/2020将是2020年1月 2020年1月2日至2020年2月21日将是2020年2月 2020年2月22日至2020年3月21日将是2020年3月 等等

数据集

enter image description here

期望的输出

enter image description here

我将如何在R中完成此操作。数据中的“日期”列为%m /%d /%Y(1/22/2020)

解决方法

您可以提取日期,如果日期大于22,则将其添加10天,并以月-年格式获取日期:

ifelse

这也可以在没有transform(dat,Fiscal_Month = format(Date + c(0,10) [(as.integer(format(Date,'%d')) >= 22) + 1],'%b %Y')) 的情况下完成:

dat <- data.frame(Date = seq(as.Date('2020-01-20'),by = '1 day',length.out = 5))

数据

使用了此示例数据:

Traceback (most recent call last):
...
  File "/.../site-packages/rest_framework/views.py",line 502,in dispatch
    response = handler(request,*args,**kwargs)
  File "/.../views.py",line 51,in post
    test_1              = face_recognition.load_image_file(path_)
  File "/.../site-packages/face_recognition/api.py",line 86,in load_image_file
    im = PIL.Image.open(file)
  File "/.../site-packages/PIL/Image.py",line 2878,in open
    fp = builtins.open(filename,"rb")
FileNotFoundError: [Errno 2] No such file or directory: 'http://127.0.0.1:8000/media/profile_pics/me.jpg'
,

1)yearmon 我们执行以下步骤:

  • 创建测试数据d,该数据显示周期月初(即22日或更晚)的日期和周期月末(即21日或更早)的日期
  • 将输入d转换为Date的{​​{1}}类
  • 减去21天,从而将其转移到开始会计期间的月份
  • 将其转换为dd类的ym(代表一年零零一个月,没有一天,而直接将其内部表示为年份,1月为1,2月为1/12,.. 。,12月11/12),然后加1/12到会计期末的月。
  • 格式化它,如图所示。 (如果yearmon使用的默认格式(例如2020年1月)可以,那么我们可以省略此步骤,即代码的最后一行。

整个内容很容易用一行代码编写,但是为了清楚起见,我们将其分解了。

yearmon

2)Base R 只能使用base R来完成此操作,如下所示。我们从上方使用library(zoo) d <- c("1/22/2020","1/21/2020") # test data dd <- as.Date(d,"%m/%d/%Y") ym <- as.yearmon(dd - 21) + 1/12 format(ym,"%b-%y") ## [1] "Feb-20" "Jan-20" dd计算cut所在的月份的第一天(但不是作为dd-21类对象),然后Date将其转换为一个。加31将其移至期末月末并对其进行格式化,我们将得出最终答案。

as.Date