【问题标题】:convert a month character value into a date month value将月份字符值转换为日期月份值
【发布时间】:2018-12-02 19:48:56
【问题描述】:

我有一个包含月份名称字符列的数据框,我需要将其转换为月份名称日期列。我试试这段代码

data1$month <- as.Date(as.character(data1$month), "%B")

但是所有的值都变成了NA。我做错了什么?

谢谢。

关于数据的更多信息

head(data1)
month     year impressions clicks conversions    cost revenue month_num
<chr>    <dbl>       <int>  <int>       <int>   <dbl>   <dbl>     <dbl>
1 April     2018    18737558 107063         291 117505. 145745.         4
2 August    2018    23247068 126523         439 118631. 143217.         8
3 February  2018    20119465 117370         320 146965. 114594.         2
4 January   2018    23905450 148205         382 155756. 145513.         1
5 July      2018    11963956  92740         297 106249. 138354.         7
6 June      2018     6845841  52294         253  53205.  91740.         6

【问题讨论】:

  • 您能否将dput(head(data1$month)) 放入一个代码块中,以便我们查看您的内容?如果您确实只有一个月份名称,则不足以创建 Date 对象。您需要添加一个虚拟的日/年。
  • 我添加了更多关于数据的信息,谢谢
  • 试试as.Date(sprintf("%04d-%02d-01", data1$year, data1$month_num));成为Date 需要“一天”,所以选择第一个是一个老生常谈的习惯。

标签: r zoo lubridate


【解决方案1】:

您可以match月份名称的前三个字符与预定义向量month.abb:

data1$month_num <- match(substr(data1$month, 1, 3), month.abb)

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多