申请后

时间:2015-06-15 10:19:19

标签: r

我一直在尝试将角色向量转换为日期向量。我有一个名为“日期”的矢量,这是一个字符。我使用“lubridate”包中的函数将其转换为POSIXct格式。当我将每个元素单独转换为POSIXct并使用c()绑定它们时,我得到了所需的输出,即“dates_final”。

当我尝试使用apply函数获得相同的输出时,它给了我一个数字向量。有没有办法在应用函数时保留格式?

这只是一个例子。在我的原始数据集中,日期的格式为不同的字符,我编写了一个自定义函数,可以检测每种类型日期的格式并解析它们,并输出POSIXct格式。如果日期在整个数据中采用相同的格式,则不会出现问题。

数据集有数百万条记录。我不可能使用循环。

library(lubridate)

dates <- c("01-05-2015 00:10","01-05-2015 00:15",
            "01-05-2015 00:15","01-05-2015 00:42")

dates_actaul_1 <- dmy_hm(dates[1])
dates_actaul_2 <- dmy_hm(dates[2])
dates_actaul_3 <- dmy_hm(dates[3])
dates_actaul_4 <- dmy_hm(dates[4])

dates_final <- c(dates_actaul_1,dates_actaul_2,dates_actaul_3,dates_actaul_4)
dates_final
[1] "2015-05-01 05:40:00 IST" "2015-05-01 05:45:00 IST"
[3] "2015-05-01 05:45:00 IST" "2015-05-01 06:12:00 IST"

dates_applied <- apply(X = data.frame(dates),MARGIN = 1,FUN = dmy_hm)
dates_applied
[1] 1430439000 1430439300 1430439300 1430440920

0 个答案:

没有答案