Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将YYYY/MM转换为年-月类别的转换系数_R_Date_Posix_Zoo - Fatal编程技术网

R 将YYYY/MM转换为年-月类别的转换系数

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

我有一个数据框,其中有一列日期,格式为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("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))不起作用。