问题描述
我的数据框:
yearmonth basinflow
<chr> <dbl>
1 1966-01 0.000105
2 1966-02 0.0000946
3 1966-03 0.816
4 1966-04 5.17
5 1966-05 0.102
6 1966-06 0.0729
我想添加一个仅包含月份值的列,但是将 yearmonth 转换为带有 as.Date 的日期不起作用。
as.Date(df_Month$yearmonth,format = "%Y-%m")
[1] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
[35] NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA NA
结果就是这样。我可以尝试什么?或者有没有办法只调用月份部分而不是日期?
解决方法
Date
类也需要一天,我们可以 paste
然后使用 %Y-%m-%d
或跳过 format
因为默认格式是 {{1} }
%Y-%m-%d
,
是否需要先转换为日期?您可以从字符串中提取月份。这将从字符串中提取“-”之后的所有内容作为数字类型。
as.numeric(gsub(".*-","",df_Month$yearmonth))
此问题已使用 zoo::as.yearmon()
函数和/或上述解决方案回答 here。