我在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函数但无法解析。有人可以帮忙吗?
答案 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)
,这就是为什么显示屏也会显示小数秒。