1

我的数据框:

  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   

我想添加一个仅包含月份值的列,但是使用 as.Date 将 yearmonth 转换为日期不起作用。

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

结果就是这样。我可以尝试什么?或者有没有办法只调用月份部分而不是日期?

4

3 回答 3

1

您需要先转换为日期吗?您可以从字符串中提取月份。这将从字符串中提取“-”之后的所有内容作为数字类型。

as.numeric(gsub(".*-","",df_Month$yearmonth))

于 2021-06-23T16:56:13.757 回答
1

我们也需要一天的时间来Date上课,paste然后可以使用%Y-%m-%d或跳过,format因为默认格式是%Y-%m-%d

as.Date(paste0(df_Month$yearmonth, "-01"), format = "%Y-%m-%d")
于 2021-06-23T16:35:08.793 回答
0

使用函数和/或上述解决方案在这里回答了这个问题。zoo::as.yearmon()

于 2021-06-23T17:05:25.297 回答