我想把一个月添加到我拥有的日期.但到目前为止它不可能以直接的方式进行.以下是我试过的.
d <- as.Date("2004-01-31")
d + 60
# [1] "2004-03-31"
Run Code Online (Sandbox Code Playgroud)
添加不会有帮助,因为月份不会重叠.
seq(as.Date("2004-01-31"), by = "month", length = 2)
# [1] "2004-01-31" "2004-03-02"
Run Code Online (Sandbox Code Playgroud)
以上可能有用,但同样不是直截了当.此外它还增加了30天或某些东西到日期,如下所示的问题
seq(as.Date("2004-01-31"), by = "month", length = 10)
# [1] "2004-01-31" "2004-03-02" "2004-03-31" "2004-05-01" "2004-05-31" "2004-07-01" "2004-07-31" "2004-08-31" "2004-10-01" "2004-10-31"
Run Code Online (Sandbox Code Playgroud)
在上面,对于前2个日期,月份没有变化.
以下方法也在一个月内失败,但是一年的成功
d <- as.POSIXlt(as.Date("2010-01-01"))
d$year <- d$year +1
d
# [1] "2011-01-01 UTC"
d <- as.POSIXlt(as.Date("2010-01-01"))
d$month <- d$month +1
d
Run Code Online (Sandbox Code Playgroud)
错误
format.POSIXlt(x, usetz = TRUE):无效'x'参数
这样做的正确方法是什么?
我希望得到a startDate和之间的日期顺序endDate加1个月startDate.即,如果startDate是2013-01-31并且endDate是2013-07-31,我希望看到这样的日期:
"2013-01-31""2013-02-28""2013-03-31""2013-04-30""2013-05-31""2013-06-30""2013-07-31"
我试过了 seq.Date(as.Date("2013-01-31"),by="month",length.out=7).但是这段代码的输出是这样的
> seq.Date(as.Date("2013-01-31"),by="month",length.out=7)
[1] "2013-01-31" "2013-03-03" "2013-03-31" "2013-05-01" "2013-05-31" "2013-07-01" "2013-07-31"
Run Code Online (Sandbox Code Playgroud)
那么,获得正确输出的最简单的解决方案是什么?
我使用这些说明在 R 中制作了一个包。我使用 RStudio,我想向包中添加一个新函数。
我是否只需将函数放入 R 脚本中并将其拖到名为 R 的包中的文件夹中?如果这样做,我是否需要更改名为 man 的文件夹的内容?
我有一个具有日期序列的R数据框。我想从一个包含一个月前日期的现有数据框中创建一个数据框。例如,让x为初始数据帧
x = data.frame(dt = c("28/02/2000","29/02/2000","1/03/2000","02/03/2000"))
Run Code Online (Sandbox Code Playgroud)
我所需的数据框y为
y = c("28/01/2000","29/01/2000","1/02/2000","02/02/2000")
Run Code Online (Sandbox Code Playgroud)
列表很大,所以我不想循环播放。我创建了一个内联函数,当我指定各个日期时可以正常工作。
datefun <- function(x) seq(as.Date(strptime(x,format = "%d/%m/%Y")), length =2, by = "-1 month")[2]
datefun("28/02/2000") gives "28/01/2000" as an output
Run Code Online (Sandbox Code Playgroud)
但是,当我在R中使用它时,它会给出随机数值。
apply(x,1,function(x) datefun(x))
Run Code Online (Sandbox Code Playgroud)
输出是
[1] 10984 10985 10988 10989
Run Code Online (Sandbox Code Playgroud)
我不知道这些数字是从哪里产生的,我错过了什么吗?
嗨,我有一个数据框,例如:
Order Number Date
4378345 2020-01-02
4324375 2020-02-03
Run Code Online (Sandbox Code Playgroud)
现在,我只想将此 Dataframe 子集化为日期大于今天日期过去 2 个月的订单,这样当我将其自动化时,它会自动使用过去两个月至今的代码。
任何帮助,将不胜感激。
编辑:我很抱歉,我想我应该更清楚,因为到最后两个月我的意思是,如果日期是今天 2020-03-16,我希望我的数据是从 2020-02-01 至今