相关疑难解决方法(0)

在日期中添加一个月

我想把一个月添加到我拥有的日期.但到目前为止它不可能以直接的方式进行.以下是我试过的.

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'参数

这样做的正确方法是什么?

r date date-arithmetic

54
推荐指数
7
解决办法
8万
查看次数

R:在一个日期加1个月

我希望得到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 dataframe zoo xts r-rook-package

11
推荐指数
2
解决办法
8417
查看次数

如何将新函数插入我的 R 包中?

我使用这些说明在 R 中制作了一个包。我使用 RStudio,我想向包中添加一个新函数。

我是否只需将函数放入 R 脚本中并将其拖到名为 R 的包中的文件夹中?如果这样做,我是否需要更改名为 man 的文件夹的内容?

r

3
推荐指数
1
解决办法
3850
查看次数

R Apply函数返回日期变量上的数值

我有一个具有日期序列的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)

我不知道这些数字是从哪里产生的,我错过了什么吗?

r date apply dataframe

2
推荐指数
1
解决办法
1465
查看次数

在过去两个月中对 R 中的数据框进行子集化

嗨,我有一个数据框,例如:

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 至今

r dataframe dplyr

0
推荐指数
1
解决办法
1007
查看次数

标签 统计

r ×5

dataframe ×3

date ×2

apply ×1

date-arithmetic ×1

dplyr ×1

r-rook-package ×1

xts ×1

zoo ×1