【问题标题】:How to transform the date using R如何使用 R 转换日期
【发布时间】:2015-07-24 21:39:02
【问题描述】:

目前,我有很多数据。与数据相关联,我也有日期。不幸的是,日期采用以下格式(日(周一至周日)、月(1 月至 12 月)日期 (1-31) 时:分:第二时区年份)。我想将其转换为月/日(1-31)/年。以下是样本数据。

created_data
Sat Jun 20 23:45:03 +0000 2015
Sat Jun 20 23:45:06 +0000 2015
Sat Jun 20 23:45:06 +0000 2015
Sat Jun 20 23:45:08 +0000 2015
Sat Jun 20 23:45:11 +0000 2015
Sat Jun 20 23:45:13 +0000 2015
Sat Jun 20 23:45:14 +0000 2015
Sat Jun 20 23:45:15 +0000 2015

这目前是数据框的形式。我试图查看数据框的格式如下:

Results
Jun 20 2015
Jun 20 2015
Jun 20 2015
Jun 20 2015
Jun 20 2015
Jun 20 2015
Jun 20 2015
Jun 20 2015 

以下是我尝试过的代码,但结果只是 NA

strptime(x = created_data, format = "%m/%d/%Y")

Result = NA

【问题讨论】:

  • 我做到了。我在我的问题中提到了这一点。在最后
  • 您需要对它们进行实际日期分类吗?

标签: r date


【解决方案1】:

首先,您必须将字符串转换为 R 知道如何处理的内容,例如 POSIXct 对象。

根据您的格式,您可以使用as.POSIXct(created_data), format="%a %b %d %X %z %Y")

一旦它处于该格式,您就可以使用格式将其转换回您想要的格式的字符串,例如...

format(as.POSIXct(created_data, format="%a %b %d %X %z %Y"), format = "%Y/%m/%d")

【讨论】:

  • 在这里,我只想补充一件事。 。因为, created_data 是一个数据框。谢谢院长
【解决方案2】:

假设日期时间存储在字符向量中,以下应该可以工作。

library("stringr")
library("dplyr")

dates <- c("Sat Jun 20 23:45:03 +0000 2015", 
           "Sat Jun 20 23:45:06 +0000 2015", 
           "Sat Jun 20 23:45:06 +0000 2015", 
           "Sat Jun 20 23:45:08 +0000 2015", 
           "Sat Jun 20 23:45:11 +0000 2015", 
           "Sat Jun 20 23:45:13 +0000 2015", 
           "Sat Jun 20 23:45:14 +0000 2015", 
           "Sat Jun 20 23:45:15 +0000 2015")

str_split_fixed(dates, pattern = " ", n=6) %>% 
  as.data.frame() %>%
  mutate(new.date = as.Date(paste(V2, V3, V6), format = "%b %d %Y"))

基本思想是使用str_split_fixed() 将字符串拆分成单独的片段,然后在as.Date() 中重新组合片段

【讨论】:

    【解决方案3】:

    只是一个没有其他包的基本 R 解决方案。

     x <- "Sat Jun 20 23:45:03 +0000 2015"
     x1 <- format(strptime(x, "%a %b %d %H:%M:%S %z %Y", tz = "GMT"), "%b %d %Y")
     x1
    [1] "Jun 20 2015"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多