将Excel中的数字日期格式转换为R语言的日期格式

3

希望将从Excel中提取的列重新格式化为包含数字Excel格式(例如40182)的数据框。

as.date(40182, origin = "1899-12-30", format = '%b-%Y')

返回:

[1] 5Jan2070

我想要更接近于Jan-14(短月份,短年份)的结果。

作为一个相对新手的R用户,我无法确定这是什么原因。更改起始日期似乎也没有改变任何东西。有什么帮助吗?


1
as.Date(40182 - 25569, origin = "1970-01-01")? - nghauran
1
这是你代码的输出结果。有两个问题:1)这是一个日期列,所以我希望这个更改能在整个列中反映出来;2)列中的第一个数字41640(预期输出)应该是2014年的一月份。当我将其输入as.date时,它返回的是2074年1月2日。 - Franchise
2
format(as.Date.numeric(40182,"1904-01-01"),"%b-%y") 或者 format(as.Date(40182,"1904-01-01"),"%b-%y") - Onyambu
请参阅R帮助台文章,网址为https://www.r-project.org/doc/Rnews/Rnews_2004-1.pdf。 - G. Grothendieck
1
可能是重复的问题,与如何使用Lubridate将Excel日期格式转换为正确的日期有关。 - lebelinoz
显示剩余6条评论
2个回答

3

在Excel中,数字40182格式化为日期后表示2010年4月1日。因此我认为您需要的是这个:

format(as.Date(40182, origin = "1899-12-30"), '%b-%Y')

这将会给出:

[1] "Jan-2010"

希望能帮到您!

1
##simulated excel. I used an excel to tes tthe code though. 
a<-seq(from = as.Date(Sys.Date()), to = seq(as.Date(Sys.Date()), 
length.out = 12, by= "-1 years")[2], by = "-1 days")
a<-as.numeric(a)
a<-a+25569
a<-as.Date(as.numeric(a[1:length(a)]), origin = as.Date("1970-01-01"))

##a is in One Year of dates like your excel list. 

a<-as.numeric(a)
a<-a-25569
a<-as.Date(as.numeric(a[1:length(a)]), origin = as.Date("1970-01-01"))
a<-format(a, "%b-%y")

希望这能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接