R соответствует предыдущему наблюдению - PullRequest
0 голосов
/ 03 февраля 2020

Как я могу сопоставить последнее доступное наблюдение для HPG с предыдущим наблюдением для HAR? Я ищу общее решение, которое позволило бы мне выбрать n-е предыдущее наблюдение. Ниже приведен пример.

library(zoo)
library(ggplot2)
library(ggrepel)
library(data.table)


# scatterplot preparation
set.seed(123)
country <- c("AT", "BE", "NL", "DE", "FR", "IT", "ES", "PT", "AT", "BE", "NL", "DE", "FR", "IT", "ES", "PT")
year <- as.yearqtr(c("2019 Q1", "2019 Q1","2019 Q1", "2019 Q1", "2019 Q1", "2019 Q1", "2019 Q1", "2019 Q1", "2019 Q2", "2019 Q2", "2019 Q2", "2019 Q2", "2019 Q2", "2019 Q2", "2019 Q2", "2019 Q2"))

HPG <- runif(16, min=0, max=5)

HAR <- runif(16, min=-1, max=3)
HAR[c(11,13)] <- NA

df <- data.frame(country, year, HPG, HAR)
df <- as.data.table(df)
df

1 Ответ

0 голосов
/ 03 февраля 2020

Мы можем получить индекс последнего наблюдения по группе с помощью .I, затем вычесть 1 из этого индекса, чтобы получить предыдущий индекс строки

i1 <- df[order(year), .I[.N], .(country)]$V1
df[, HPG[i1] == HAR[i1-1]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...