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

问题描述 投票:-1回答:1

有人知道,如何将sas日期(01JAN1990)转换为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变量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

r date sas
1个回答
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"

希望这就是你想要的。

© www.soinside.com 2019 - 2024. All rights reserved.