r - 如何使用 seq() 创建以毫秒(分秒)为增量的日期/时间列
问题描述
我的数据框(df)如下所示:
ID CH_1 CH_2 CH_3 CH_4 date_time
1 -10096 -11940 -9340 -9972 2018-07-24 10:45:01.1
2 -10088 -11964 -9348 -9960 <NA>
3 -10084 -11940 -9332 -9956 <NA>
4 -10088 -11956 -9340 -9960 <NA>
最后一列date_time被编码为 POSIXct 格式。我需要做的是用增加的分秒或 100 毫秒填充我的数据框列的其余部分(它非常大),以便下一列看起来像这样,依此类推......
ID CH_1 CH_2 CH_3 CH_4 date_time
1 -10096 -11940 -9340 -9972 2018-07-24 10:45:01.1
2 -10088 -11964 -9348 -9960 2018-07-24 10:45:01.2
3 -10084 -11940 -9332 -9956 2018-07-24 10:45:01.3
4 -10088 -11956 -9340 -9960 2018-07-24 10:45:01.4
我尝试过使用以下内容,
startDate <- df[["date_time"]][1]
datasetname2$date_time = as.POSIXct(startDate) + seq.POSIXt(datasetname2[6,1],
units="seconds", by=.1)
但它返回一个错误(见下文)
Error in seq.POSIXt(datasetname2[6, 1], units = "seconds", by = 0.1) :
'from' must be a "POSIXt" object
解决方案
这可能对您有用:
library(lubridate)
df <- data.frame(ID = 1:4,
CH_1 = rep(c(-10096, -10088, -10084, -10088), 4),
CH_2 = rep(c(-11940, -11964, -11940, -11956), 4),
date_time = c("2018-07-24 10:45:01.1", rep(NA, 15)))
df$date_time <- as.POSIXct(df$date_time, format= "%F %H:%M:%OS2", tz = "UTC")
df$date_time <- seq(from = df$date_time[1], to = df$date_time[1] + (nrow(df)-1)*0.1, by = 0.10)
format(df$date_time, "%OS3")
推荐阅读
- java - 我在 android 中的卡片翻转动画出了什么问题?
- python - 如何从内部函数停止执行外部函数?
- xml - Google 测试:如何从多个测试套件运行中生成单个 xml 报告?
- jquery - 使用 jQuery 对多个表单进行表单验证
- macos - 在 MacOs Big Sur 上使用 OpenGL
- gstreamer - 使用 GStreamer 管道创建 onvif 合规摄像头
- javascript - 如何更新对象数组并将其分配给新变量
- azure - 如何获取具有角色权限的用户
- c - 在不声明类型的情况下分配内存,稍后再分配结构类型
- python - 将 SPACY 装入 ANACONDA