r - 在 R 中:有条件地将日期更改为往年
问题描述
我有一份公司财政年度的日期清单。我想将 1 月 1 日至 5 月 31 日之间的所有日期转换为一个新变量,它表示它属于上一年。我也有介于 6 月 1 日至 12 月 31 日之间的日期,我希望这些年保持不变。我们想要的示例:
date year
2010-05-31 2009
2015-03-31 2014
2007-04-30 2006
2011-08-31 2011
2002-11-30 2002
非常感谢您的帮助!谢谢!
解决方案
你可以这样做base R
:
> df <- data.frame(date = as.Date(c("2010-05-31", "2015-03-31", "2007-04-30", "2011-08-31", "2002-11-30")))
> df$year <- as.numeric(format(df$date, "%Y")) - (as.numeric(format(df$date, "%m")) < 6)
> df
date year
1 2010-05-31 2009
2 2015-03-31 2014
3 2007-04-30 2006
4 2011-08-31 2011
5 2002-11-30 2002
如果月份在六月之前,则最后一年是年份减去 1。
推荐阅读
- java - 遍历树收集节点组合
- asp.net-core - 将 HttpClientFactory 添加到 ABP 核心项目会在第二次调用时产生“无法访问已处置的对象”
- gnuplot - 如何在 gnuplot 中创建 .eps 图像?
- c++ - SystemParametersInfoA 和 SystemParametersInfo 有什么区别?
- regex - 如何在颤振中使用正则表达式?
- php - 使用hotmail发送邮件时无法检测结果?
- android - 如何通过在弹出窗口内单击来关闭弹出窗口?
- jquery - 如何将视图中的数组传递给 ajax 并在 Laravel 5 的控制器中访问?
- kubernetes - Kubernetes - pod 到 pod 通信协议
- java - 无法将图像文件选择器意图中的捆绑数据传递给 onActivityResult