这是mydata
ga=structure(list(Date = c(190410L, 190410L, 190410L, 190410L, 190410L
), open = c(162.4, 162.57, 162.94, 162.87, 162.96), high = c(162.57,
162.94, 162.95, 163, 163.11), low = c(162.12, 162.51, 162.83,
162.83, 162.95), close = c(162.57, 162.94, 162.9, 162.95, 162.95
)), class = "data.frame", row.names = c(NA, -5L))
我使用mdy
中的lubridate
函数
ga$Date=mdy(ga$Date)
所以我只得到NA
。
我如何获得这样的输出格式(mm.dd.yy)
Date open high low close
1 04.10.2019 162.40 162.57 162.12 162.57
2 04.10.2019 162.57 162.94 162.51 162.94
3 04.10.2019 162.94 162.95 162.83 162.90
4 04.10.2019162.87 163.00 162.83 162.95
5 04.10.2019 162.96 163.11 162.95 162.95
答案 0 :(得分:3)
我们可以使用:
strftime(lubridate::ymd(ga$Date),"%m %d %Y")
[1] "04 10 2019" "04 10 2019" "04 10 2019" "04 10 2019" "04 10 2019"
上面将返回日期的字符表示形式,如果您希望保留为日期(我发现显示有些误导),则可以使用:
lubridate::mdy(strftime(lubridate::ymd(ga$Date),"%m %d %y"))
[1] "2019-04-10" "2019-04-10" "2019-04-10" "2019-04-10" "2019-04-10"
也许mdy
默认使用这种表示形式,如here所示。
答案 1 :(得分:3)
我们可以使用基数R获得所需格式的输出
ga$Date <- format(as.Date(as.character(ga$Date), "%y%m%d"), "%m.%d.%Y")
ga
# Date open high low close
#1 04.10.2019 162.40 162.57 162.12 162.57
#2 04.10.2019 162.57 162.94 162.51 162.94
#3 04.10.2019 162.94 162.95 162.83 162.90
#4 04.10.2019 162.87 163.00 162.83 162.95
#5 04.10.2019 162.96 163.11 162.95 162.95
答案 2 :(得分:3)
我们可以使用anydate
中的anytime
library(anytime)
format(anydate(as.character(ga$Date)), "%m.%d.%Y")
#[1] "04.10.2019" "04.10.2019" "04.10.2019" "04.10.2019" "04.10.2019"
如果要转换日期时间格式
str1 <- "190410;100000"
format(as.POSIXct(str1, format= "%y%m%d;%H%M%S"), "%m.%d.%Y %H:%M")
#[1] "04.10.2019 10:00"