如何将SAS日期转换为R日期(或SAS日期时间转换为R日期时间)

时间:2019-10-18 15:28:03

标签: r date sas

有人知道如何将sas日期(1990年1月1日)转换为r日期(或将sas datetime转换为r datetime吗?)

df <- data.frame(date1 = c("01JAN1990", "02AUG2010"), date2=c("24DEC2016:11:60:60","25DEC2017:12:00:00"))
df$date1 <- as.character(df$date1)
df$date2 <- as.character(df$date2)
df

我可以将as.Date(df$date1, "%d%m%Y")与m的另一个值一起使用吗?


编辑:为什么我不能对datetime-variable date2的日期部分进行切片并应用%d%B%Y?

df <- data.frame(date1 = c("01JAN1990", "02AUG2010"), date2=c("24DEC2016:11:60:60","25DEC2017:12:00:00"))
df$date1 <- as.character(df$date1)
df$date2 <- as.character(df$date2)
df %>% mutate(date3 = substr(date2, 1, 9),
              date4 = as.Date(date3, "%d%B%Y")) %>% glimpse()

哪个给我NA值(date4

1 个答案:

答案 0 :(得分:0)

如果您仍然得到NA,这里可以解决

library(lubridate)
df <- data.frame(date1 = c("01JAN1990", "02AUG2010"), date2=c("24DEC2016:11:60:60","25DEC2017:12:00:00"))
df$date1 <- as.character(df$date1)
df$date2 <- as.character(df$date2)
#Sys.setlocale("LC_TIME", "C")

df %>% mutate(date3 = substr(date2, 1, 9),
              date4 = format(dmy(date3), "%d%^b%Y")) %>% glimpse()
#Output 
# Observations: 2
# Variables: 4
# $ date1 <chr> "01JAN1990", "02AUG2010"
# $ date2 <chr> "24DEC2016:11:60:60", "25DEC2017:12:00:00"
# $ date3 <chr> "24DEC2016", "25DEC2017"
# $ date4 <chr> "24DEC2016", "25DEC2017"

希望这就是您想要的。