R 将YYYY/MM转换为年-月类别的转换系数
我有一个数据框,其中有一列日期,格式为YYYY/MM,factor类,我希望将其转换为date类。例如2000/01->2000年1月 我注意到,R 将YYYY/MM转换为年-月类别的转换系数,r,date,posix,zoo,R,Date,Posix,Zoo,我有一个数据框,其中有一列日期,格式为YYYY/MM,factor类,我希望将其转换为date类。例如2000/01->2000年1月 我注意到,as.Date()无法处理没有day组件的日期格式。我已尝试使用zoo包中的as.yearmon()函数 library('zoo') as.yearmon(factor("2000-01")) # It works with YYYY-MM format # [1] "Jan 2000" as.yearmon(factor
as.Date()
无法处理没有day组件的日期格式。我已尝试使用zoo
包中的as.yearmon()
函数
library('zoo')
as.yearmon(factor("2000-01")) # It works with YYYY-MM format
# [1] "Jan 2000"
as.yearmon(factor("2000/01"))
# [1] NA
as.yearmon(factor("2000/01"),"%y/%m")
# [1] NA
我正在寻找一个将
因子(“2000/01”)转换为“Jan 2000”
的函数。任何帮助都将不胜感激。如果as.Date
有一个月中的某一天不存在的问题,那么出于您的目的,您可以在任何一天临时向其提供:
# Generate 10 "YYYY/MM"
n <- 10
our_dates <- paste(sample(1000:2000, n), sample(11:12, n, replace = TRUE), sep = "/")
our_dates
[1] "1027/12" "1657/12" "1180/11" "1646/12" "1012/12" "1684/12" "1693/11" "1835/11"
[9] "1916/11" "1073/12"
# Dirty fix, add a "day of month" to our dates
our_dates <- paste0(our_dates, "/01")
our_dates
[1] "1027/12/01" "1657/12/01" "1180/11/01" "1646/12/01" "1012/12/01" "1684/12/01"
[7] "1693/11/01" "1835/11/01" "1916/11/01" "1073/12/01"
# Format as dates
x <- as.Date(our_dates,"%Y/%m/%d")
# Now print out in your fromat:
format(x, format = "%b %Y")
[1] "Dec 1027" "Dec 1657" "Nov 1180" "Dec 1646" "Dec 1012" "Dec 1684" "Nov 1693"
[8] "Nov 1835" "Nov 1916" "Dec 1073"
#生成10“yyy/MM”
n请不要在您自己的问题中添加任何内容。也许包随时都可以提供帮助。as.yearmon
可以很好地处理字符,因此as.yearmon(as.character(x))
似乎是一个不错的选择。您的格式错误。改用“%Y/%m”
试试(大写Y表示四位数年份)。@Frank对此表示抱歉。我是R的新手,我使用了类似帖子的标签。事后看来,我应该先读一下标签。只是更新>as.yearmon(as.character(x))不起作用。