【问题标题】:Adding a new column with month extracted from a separate already existing "date" (mdy) column添加从单独的现有“日期”(mdy)列中提取月份的新列
【发布时间】:2019-05-06 11:07:26
【问题描述】:

尝试使用已可用的“SetDate”列在我的数据表中添加一个新列,以表示月份(作为数值或字符),其格式为 mdy。

我是 R 新手,遇到了麻烦。谢谢

【问题讨论】:

  • 请不要使用代码图片。以可重复的形式包含数据,例如使用dput(data) 并包含输出

标签: r date datatable lubridate


【解决方案1】:

base解决方案:

f = "%m/%d/%y" # note the lowercase y; it's because the year is 92, not 1992
dataset$SetDateMonth <- format(as.POSIXct(dataset$SetDate, format = f), "%m")

基本上,它的作用是将列从character(假定类)转换为POSIXct,这样可以轻松提取月份信息。

快速测试:

format(as.POSIXct('1/1/92', format = "%m/%d/%y"), "%m")
[1] "01"

【讨论】:

    【解决方案2】:

    试试这个(创建了一个小例子):

    library(lubridate)
    
    date_example <- "1/1/92"
    lubridate::mdy(date_example)
    [1] "1992-01-01"
    lubridate::mdy(date_example) %>% lubridate::month()
    [1] 1
    

    如果要将整月作为字符串,请使用:

    lubridate::mdy(date_example) %>% lubridate::month(label = TRUE, abbr = FALSE)
    

    【讨论】:

      猜你喜欢
      • 2022-12-13
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多