小编ami*_*sai的帖子

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
查看次数

标签 统计

apply ×1

dataframe ×1

date ×1

r ×1