gpt4 book ai didi

r - as.Date 从 'YYYY.mm' 格式

转载 作者:行者123 更新时间:2023-12-04 09:58:58 25 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Converting year and month ("yyyy-mm" format) to a date?

(7 个回答)


4年前关闭。




我有一个数据框,其中日期存储为 double例如,1993.09 1993.10 1993.11 1993.12
我想将其转换为日期格式 '%Y %m %d' (天总是 1 )。

据我了解,as.Date()想要一个字符串输入。但是,出于某种原因,当我将日期转换为字符串时 sapply(dates, as.character)一个后面的零消失,有效地将十月转换为一月,从而导致每年两个一月。

dates
1993.07 1993.08 1993.09 1993.10 1993.11 1993.12
sapply(dates, as.character)
sub("[.]", " ", dates)
"1993 07" "1993 08" "1993 09" "1993 1" "1993 11" "1993 12"

有没有更直接的方法来转换日期?或者我在哪里搞砸了?

输入:
c(1993.01, 1993.02, 1993.03, 1993.04, 1993.05, 1993.06, 1993.07, 
1993.08, 1993.09, 1993.1, 1993.11, 1993.12)

最佳答案

你的问题是你有一个字符串,但看起来像一个数字,你在导入过程中没有注意这一点。 R 不区分 1993.11993.10 .两者是同一个数字。因此,as.character(1993.10)返回 "1993.1" .您需要使用格式化函数来确保在句点后得到两位数,因为 to as.Date "1993.1""1993.01"是同月。

x <- c(1993.09, 1993.10, 1993.11, 1993.12)
as.Date(sprintf("%.2f.01", x), format = "%Y.%m.%d")
#[1] "1993-09-01" "1993-10-01" "1993-11-01" "1993-12-01"

当然, x应该作为字符导入。

关于r - as.Date 从 'YYYY.mm' 格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33673433/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com