gpt4 book ai didi

r - 插入缺少日期/时间的行

转载 作者:行者123 更新时间:2023-12-03 07:02:21 25 4
gpt4 key购买 nike

我是 R 新手,但已转向它来解决我正在尝试处理的大型数据集的问题。目前,我有 4 列数据(Y 值)针对分钟间隔时间戳(月/日/年小时:分钟)(X 值)设置,如下所示:

    timestamp          tr            tt         sr         st  
1 9/1/01 0:00 1.018269e+02 -312.8622 -1959.393 4959.828
2 9/1/01 0:01 1.023567e+02 -313.0002 -1957.755 4958.935
3 9/1/01 0:02 1.018857e+02 -313.9406 -1956.799 4959.938
4 9/1/01 0:03 1.025463e+02 -310.9261 -1957.347 4961.095
5 9/1/01 0:04 1.010228e+02 -311.5469 -1957.786 4959.078

我遇到的问题是缺少一些时间戳值 - 例如9/1/01 0:13 和 9/1/01 0:27 之间可能存在间隙,并且这种间隙在整个数据集中是不规则的。我需要将其中几个系列放入同一个数据库中,并且由于每个系列的缺失值都不同,因此日期当前并未在每行上对齐。

我想为这些缺失的时间戳生成行,并用空白值填充 Y 列(没有数据,不是零),以便我有一个连续的时间序列。

老实说,我不太确定从哪里开始(之前没有真正使用过 R,所以我一边学习一边学习!),但任何帮助将不胜感激。到目前为止,我已经安装了 chron 和 Zoo,因为它们似乎很有用。

谢谢!

最佳答案

这是一个老问题,但我只是想发布一个 dplyr 处理这个问题的方法,因为我在寻找类似问题的答案时遇到了这篇文章。我发现它比动物园的方法更直观、更容易观察。

library(dplyr)

ts <- seq.POSIXt(as.POSIXct("2001-09-01 0:00",'%m/%d/%y %H:%M'), as.POSIXct("2001-09-01 0:07",'%m/%d/%y %H:%M'), by="min")

ts <- seq.POSIXt(as.POSIXlt("2001-09-01 0:00"), as.POSIXlt("2001-09-01 0:07"), by="min")
ts <- format.POSIXct(ts,'%m/%d/%y %H:%M')

df <- data.frame(timestamp=ts)

data_with_missing_times <- full_join(df,original_data)

timestamp tr tt sr st
1 09/01/01 00:00 15 15 78 42
2 09/01/01 00:01 20 64 98 87
3 09/01/01 00:02 31 84 23 35
4 09/01/01 00:03 21 63 54 20
5 09/01/01 00:04 15 23 36 15
6 09/01/01 00:05 NA NA NA NA
7 09/01/01 00:06 NA NA NA NA
8 09/01/01 00:07 NA NA NA NA

还使用 dplyr,这使得执行诸如将所有缺失值更改为其他值之类的操作变得更加容易,这在我在 ggplot 中绘图时派上了用场。

data_with_missing_times %>% group_by(timestamp) %>% mutate_each(funs(ifelse(is.na(.),0,.)))

timestamp tr tt sr st
1 09/01/01 00:00 15 15 78 42
2 09/01/01 00:01 20 64 98 87
3 09/01/01 00:02 31 84 23 35
4 09/01/01 00:03 21 63 54 20
5 09/01/01 00:04 15 23 36 15
6 09/01/01 00:05 0 0 0 0
7 09/01/01 00:06 0 0 0 0
8 09/01/01 00:07 0 0 0 0

关于r - 插入缺少日期/时间的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16787038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com