相关疑难解决方法(0)

R:合并两个不规则的时间序列

我有两个多变量时间序列x和y,两者都覆盖了大致相同的时间范围(一个在另一个之前两年开始,但它们在同一天结束).两个系列都以日期列旁边的空列形式缺少观察结果,并且在某种意义上,其中一个系列具有在另一个系列中找不到的几个日期,反之亦然.

我想创建一个数据框(或类似),其中列列出了在x或y中找到的所有日期,没有重复日期.对于每个日期(行),我想在y的观察值旁边水平叠加来自x的观测值,其中NA填充缺失的单元格.例:

>x
"1987-01-01"   7.1    NA   3
"1987-01-02"   5.2    5    2
"1987-01-06"   2.3    NA   9

>y
"1987-01-01"   55.3   66   45
"1987-01-03"   77.3   87   34

# result I would like
"1987-01-01"   7.1    NA   3   55.3   66   45
"1987-01-02"   5.2    5    2   NA     NA   NA
"1987-01-03"   NA     NA   NA  77.3   87   34
"1987-01-06"   2.3    NA   9   NA     NA   NA
Run Code Online (Sandbox Code Playgroud)

我尝试过:使用zoo包,我尝试了merge.zoo方法,但这似乎只是将两个系列相互叠加,并附有日期(作为数字,例如"1987-01-02"显示如每个系列中的6210)出现在两个单独的列中.

我已经坐了几个小时几乎无处可去,所以所有的帮助都表示赞赏.

编辑:根据Soumendra的建议,下面包含一些代码

atcoa <- read.csv(file = "ATCOA_full_adj.csv", header = TRUE)
atcob <- read.csv(file = "ATCOB_full_adj.csv", header = TRUE)
atcoa$date <- as.Date(atcoa$date)
atcob$date …
Run Code Online (Sandbox Code Playgroud)

merge r time-series zoo

16
推荐指数
1
解决办法
3万
查看次数

多个日期范围的条件连接

我有两个数据框:“探针”和“事件”。下面的代码将生成这些数据帧的可重现样本。Probes.subset 是 Probes 中所有与 Events 中的日期时间范围相交的观测值的数据框。下面的代码将生成 6 个事件……实际上我有近 200 个谨慎的事件。

目标:我需要将 Events 中的 Event.name 连接到基于时间戳的 Probes.subset 中的每个相应观察,以便每个观察都与正确的事件相关联。

以前尝试过 FOR 循环,但速度非常慢,并且无法完成,因为我的数据超过 180,000 行。我有一种感觉,这可以通过编写一个函数并使用诸如 apply 之类的东西来解决,但我是 R 中函数的完全新手,而且我创建的函数都不起作用。

library(dplyr)

# Generate Probes data
start <- as.POSIXct("01/06/2016 01:00", format = "%d/%m/%Y %H:%M")
end <- start + as.difftime(1, units = "days")

Timestamp <- seq(from = start, to = end, by = "10 mins")
Value <- round(runif(145) * 100, 2)

Probes <- data.frame(Timestamp, Value)

# Generate Events data
Event.name <- seq(1, 6) …
Run Code Online (Sandbox Code Playgroud)

r dplyr

1
推荐指数
1
解决办法
845
查看次数

标签 统计

r ×2

dplyr ×1

merge ×1

time-series ×1

zoo ×1