【问题标题】:Convert dates to text in R在 R 中将日期转换为文本
【发布时间】:2019-02-12 16:58:07
【问题描述】:

我有以下日期数据集 (YYYY-MM-DD):

> dates
 [1] "20180412" "20180424" "20180506" "20180518" "20180530" "20180611" "20180623" "20180705" "20180717" "20180729"

我想将它们转换为: DD-MMM-YYYY 但月份是文本。例如20180412 应该变成12Apr2018

关于如何进行的任何建议?

M

【问题讨论】:

  • 签出formatstrptime

标签: r list date type-conversion


【解决方案1】:

您需要首先将文本字符串解析Date对象,然后格式化这些Date对象以根据您的喜好获得不同的文本输出:

R> library(anytime)   ## one easy way to parse dates and times
R> dates <- anydate(c("20180412", "20180424", "20180506", "20180518", "20180530",
+                    "20180611", "20180623", "20180705", "20180717", "20180729"))
R> dates
 [1] "2018-04-12" "2018-04-24" "2018-05-06" "2018-05-18" "2018-05-30"
 [6] "2018-06-11" "2018-06-23" "2018-07-05" "2018-07-17" "2018-07-29"
R> 
R> txtdates <- format(dates, "%d%b%Y")
R> txtdates
 [1] "12Apr2018" "24Apr2018" "06May2018" "18May2018" "30May2018"
 [6] "11Jun2018" "23Jun2018" "05Jul2018" "17Jul2018" "29Jul2018"
R> 

【讨论】:

    【解决方案2】:

    您可以使用as.Date()format() 函数:

    dts <- c("20180412", "20180424", "20180506", "20180518", "20180530", 
             "20180611", "20180623")
    
    format(as.Date(dts, format = "%Y%m%d"), "%d%b%Y")
    

    更多信息here

    【讨论】:

      【解决方案3】:

      你可以试试这样的:

      # print today's date
      today <- Sys.Date()
      format(today, format="%B %d %Y") "June 20 2007"
      

      where 以下符号可以与 format() 函数一起使用来打印日期1

      【讨论】:

        【解决方案4】:

        只需使用as.POSIXctas.format

        dates <- c("20180412", "20180424", "20180506")
        format(as.POSIXct(dates, format="%Y%m%d"),format="%d%b%y")
        

        输出:

        [1] "12Apr18" "24Apr18" "06May18"
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-03-21
          • 2022-01-27
          • 2019-04-22
          相关资源
          最近更新 更多