如何将包含毫秒的char矢量的格式更改为R中的时间序列矢量

时间:2016-11-22 01:18:29

标签: r time-series

我在R中有一个DF,它有两个字符列。第一列是时间序列数组,第二列包含连续数字。时间序列字段具有以毫秒记录的时间。我试图将此数组转换为日期数组。无论我使用哪种方法来转换它,我都会丢失毫秒信息。

以下是数据框:

time = c("08-08-2016 09:16:33.430","08-08-2016 09:16:37.930")
values <- c(45,21)
my_data <- data.frame(time,values)

我想保留毫秒信息。但是,当我使用以下方法转换时间字符数组时,我会丢失毫秒数(O / P时间数组= 2016-08-08 09:16:33,08-08-2016 09:16:37)。

my_data$time=strptime(my_data$time,format="%m-%d-%Y %H:%M:%S.%OS")

我也尝试过使用as.POSIXct,as.Date函数但无法解析。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

%OS代替%S,而不是"%m-%d-%Y %H:%M:%OS"options(digits.secs=6) as.POSIXct(my_data$time, format="%m-%d-%Y %H:%M:%OS") #[1] "2016-08-08 09:16:33.43 AEST" "2016-08-08 09:16:37.93 AEST" 是所需的格式字符串:

{{1}}

答案 1 :(得分:1)

您有足够的标准格式,以便anytime可以使用您的其他输入自动解析此内容:

R> timevec <- c("08-08-2016 09:16:33.430","08-08-2016 09:16:37.930")
R> anytime(timevec)
[1] "2016-08-08 09:16:33.43 CDT" "2016-08-08 09:16:37.93 CDT"
R> 

我倾向于默认设置options(digits.secs=6),这就是为什么显示屏也会显示小数秒。