将整数转换为日期类

发布于 2024-10-01 02:57:02 字数 400 浏览 4 评论 0原文

我有一个整数,我想将其转换为类 Date。我假设我首先需要将其转换为字符串,但是如何转换呢?

我的尝试:

v <- 20081101
date <- as.Date(v, format("%Y%m%d"))

charToDate(x) 中的错误:字符串不符合标准 明确的格式

使用 paste() 可以,但这真的是进行转换的正确方法吗?

date <- as.Date(paste(v), format("%Y%m%d"))
date
[1] "2008-11-01"

class(date)
# [1] "Date"

I have an integer which I want to convert to class Date. I assume I first need to convert it to a string, but how?

My attempt:

v <- 20081101
date <- as.Date(v, format("%Y%m%d"))

Error in charToDate(x) : character string is not in a standard
unambiguous format

Using paste() works, but is that really the correct way to do the conversion?

date <- as.Date(paste(v), format("%Y%m%d"))
date
[1] "2008-11-01"

class(date)
# [1] "Date"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

江南烟雨〆相思醉 2024-10-08 02:57:02

as.character() 将是通用方法,而不是使用 paste() 来产生副作用

> v <- 20081101
> date <- as.Date(as.character(v), format = "%Y%m%d")
> date
[1] "2008-11-01"

(我认为这是一个简单的示例,如下所示:

v <- "20081101"

不可能吗?)

as.character() would be the general way rather than use paste() for its side effect

> v <- 20081101
> date <- as.Date(as.character(v), format = "%Y%m%d")
> date
[1] "2008-11-01"

(I presume this is a simple example and something like this:

v <- "20081101"

isn't possible?)

相思碎 2024-10-08 02:57:02

另一种获得相同结果的方法:

date <- strptime(v,format="%Y%m%d")

Another way to get the same result:

date <- strptime(v,format="%Y%m%d")
乞讨 2024-10-08 02:57:02

您可以使用 lubridate 中的 ymd

lubridate::ymd(v)
#[1] "2008-11-01"

anytime::anydate

anytime::anydate(v)
#[1] "2008-11-01"

You can use ymd from lubridate

lubridate::ymd(v)
#[1] "2008-11-01"

Or anytime::anydate

anytime::anydate(v)
#[1] "2008-11-01"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文