我使用lubridate并认为这将是如此简单
ymd("2010-01-31")+months(0:23)
Run Code Online (Sandbox Code Playgroud)
但看看会得到什么.这一切都搞砸了!
[1] "2010-01-31 UTC" "2010-03-03 UTC" "2010-03-31 UTC" "2010-05-01 UTC" "2010-05-31 UTC" "2010-07-01 UTC" "2010-07-31 UTC" "2010-08-31 UTC" "2010-10-01 UTC"
[10] "2010-10-31 UTC" "2010-12-01 UTC" "2010-12-31 UTC" "2011-01-31 UTC" "2011-03-03 UTC" "2011-03-31 UTC" "2011-05-01 UTC" "2011-05-31 UTC" "2011-07-01 UTC"
[19] "2011-07-31 UTC" "2011-08-31 UTC" "2011-10-01 UTC" "2011-10-31 UTC" "2011-12-01 UTC" "2011-12-31 UTC"
Run Code Online (Sandbox Code Playgroud)
然后我读到了lubridate如何迎合间隔,持续时间和周期等现象.那么,好吧我知道一个月实际上是由(365*4 + 1)/ 48 = 30.438天定义的天数.所以我试图变得聪明并将其重写为
ymd("2010-01-31")+ as.period(months(0:23))
Run Code Online (Sandbox Code Playgroud)
但那只是一个错误.
Run Code Online (Sandbox Code Playgroud)Error in as.period.default(months(0:23)) : (list) object cannot be coerced to type 'double'
我可能做了一些愚蠢而没有看到它的东西,但是:
> strptime("201101","%Y%m")
[1] NA
Run Code Online (Sandbox Code Playgroud)
从帮助strptime:
%Y年份与世纪
%m月份为十进制数字(01-12)
我有一个类似于圆形POSIX日期(POSIXct)和基本R功能的问题,但我希望始终将日期从第二天的午夜(00:00:00)开始.
基本上,我想要一个等效ceiling于POSIX格式日期的函数.与相关问题一样,我正在编写自己的包,并且我已经有几个包依赖项,所以我不想添加更多.在基地R有一个简单的方法吗?
以下代码以 POSIXct 格式创建一个 10 行数据表,其中包含一个变量 timeStamp。
library(data.table)
dt <- data.table(timeStamp = seq( as.POSIXct("2017-07-01 14:51:50"), by=60, len=10))
Run Code Online (Sandbox Code Playgroud)
我想将时间戳舍入到最近的分钟。
此命令在 timeStamp2 的每一行中放置一个列表,而不是修改后的 POSIXct 变量。
dt[, timestamp2 := round(timeStamp, "mins")]
Run Code Online (Sandbox Code Playgroud)
下面的代码行做了我想要的(在这个例子中四舍五入),但在数据表中不起作用。
timestamp2 <- round(dt$timeStamp, "mins")
Run Code Online (Sandbox Code Playgroud)
我正在使用 data.table 版本 1.10.4-3 和 MRAN R 版本 3.4.1。
我有一些年月形式的数据,我想将其格式化以在ggplot.
date <- c("2016-03", "2016-04", "2016-05", "2016-06", "2016-07", "2016-08",
"2016-09", "2016-10", "2016-11", "2016-12")
Run Code Online (Sandbox Code Playgroud)
我正在使用parsedate::parse_date,但自从更新 R 后它不再起作用。
我看过
as.yearmon工作正常,但它没有格式化为我需要的 POSIXct ggplot。其他格式(例如as.POSIXct和 )strptime会给出 NA 或错误。
注意:我不介意是否将每月的第一天添加到“年-月”格式中。