所以我已经通过堆栈交换答案,我无法解决这个问题
我在数据框中有一个列,其日期为字符,如下所示
2011-12
2012-04
2011-10
etc
我想将这些格式转换为我尝试过的日期格式,如下所示:
Tots$DatesMerge<-as.Date(Tots$DatesMerge,"%Y-%m"
)
但我总是让NA回来
我试着像here那样做,但没有快乐。我真的不确定我做错了什么。
答案 0 :(得分:4)
我会说as.Date
将无法处理当月没有任何一天的值。您可以尝试使用zoo
,只要您不介意它作为yearmon
类出现:
library( zoo )
as.yearmon( Tots$DatesMerge )
或者,您可以指定一个月中的某一天用作虚拟人物:
as.Date( paste0( Tots$DatesMerge, "-15" ) )
答案 1 :(得分:1)
编辑:已经有了一个答案而且它是重复的,但我想这个解释对于其他读者来说非常有用,所以我会留下它。
<强>解释强>
在R中,日期因此取决于年,月和日或至少一个整数,表示从1970-01-01或到1970-01-01的跨度(以天为单位)。因此,R中的基础日期包不能将年和月中格式化的数据转换为日期,因为没有日期。
<强>解决方案强>
因此,如果您使用base R package,则可以选择提供用于转换数据的日期。
Tots$DatesMerge <- as.Date(paste0(Tots$DatesMerge,"01"),"%Y-%m-%d")