首页 > 解决方案 > 用 R 中的日期(格式 dd-mm-yyyy)替换数值

问题描述

我力求做到以下几点。在我的数据集中,我有变量“exact_date”。目前,它用数字编码,每个数字代表一个特定的日期,例如“1”代表“2019 年 2 月 19 日”等等。

我想用格式(dd-mm-yyyy)的实际日期替换这些数值(1-15)。我已经尝试了很多命令,例如

gsub("1", "19-02-2019", dataset$exact_date) 

这不会产生预期的结果。

相似地,

dataset$exact_date[dataset$exact_date == 1] <- as.character("19-02-2019")

或者

library(tidyverse)
pre_911 %>% mutate_at(
  vars(
    c('exact_date')
  ),
  funs(
    case_when(
     
      . = 2              ~ '20/02/2019',
      . = 3            ~ '21/02/2019',
      TRUE               ~ as.character(.)
    )
  )
)

不产生所需的输出。

有人可以帮我实现我想要的吗?

标签: rdate

解决方案


将数值转换为原点为的日期'2019-02-18'

dataset <- data.frame(exact_date =  c(2, 1, 3, 4, 1))
as.Date(dataset$exact_date, origin = '2019-02-18')
#[1] "2019-02-20" "2019-02-19" "2019-02-21" "2019-02-22" "2019-02-19"

如果您想要 dmy 格式的日期,您可以使用format

format(as.Date(dataset$exact_date, origin = '2019-02-18'), '%d/%m/%Y')
#[1] "20/02/2019" "19/02/2019" "21/02/2019" "22/02/2019" "19/02/2019"

推荐阅读