Я пытаюсь выполнить скользящее соединение в пакете data.table в R, как показано в примере ниже.Я понимаю, что установка rollends на c (FALSE, FALSE) указывает на то, что значения, падающие до первого значения или после последнего значения для группы, не должны катиться.
Однако мне неясно, почему последнее значениесам по себе не включен в выходные данные приведенного ниже примера, то есть почему 2018-05-31 имеет значение NA вместо 1,5 в приведенном ниже примере.Я понимаю, что значение 2018-06-30 равно NA, так как последнее значение не должно быть перенесено.
Является ли приведенное ниже желаемое поведение роликов?Я ожидал, что последнее значение не будет перенесено вперед, но все равно будет включено в скользящее соединение.
tableB <- data.table(DT = c("2018-01-31", "2018-02-28", "2018-03-30", "2018-04-30", "2018-05-31", "2018-06-30"))
tableA <- data.table(DT = c("2018-02-23", "2018-05-09"),
value = c(0.5, 1.5))
tableB[, DT := as.Date(DT)]
tableA[, DT := as.Date(DT)]
setkey(tableA, DT)
setkey(tableB, DT)
tableA[, .SD[tableB, roll = Inf, on = "DT", rollends = c(FALSE, FALSE)]]
# DT value
# 1: 2018-01-31 NA
# 2: 2018-02-28 0.5
# 3: 2018-03-30 0.5
# 4: 2018-04-30 0.5
# 5: 2018-05-31 NA
# 6: 2018-06-30 NA
rollends Справка [1]
rollends Длина логического вектора 2 (повторяется один логический), указывающая, должны ли значения, выпадающие до первого значения или после последнего значения для группы, также быть свернуты.
• Если rollends [2] = TRUE, онсвернет последнее значение вперед.TRUE по умолчанию для LOCF и FALSE для бросков NOCB.
• Если rollends [1] = TRUE, первое значение будет повернуто назад.TRUE по умолчанию для NOCB и FALSE для бросков LOCF.Когда бросок является конечным числом, этот предел также применяется при бросании концов.
sessionInfo ()
R version 3.5.0 (2018-04-23)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
Matrix products: default
locale:
[1] LC_COLLATE=English_United Kingdom.1252 LC_CTYPE=English_United Kingdom.1252 LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C LC_TIME=English_United Kingdom.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] lubridate_1.7.4 RollingWindow_0.2 devtools_1.13.5 xlsx_0.5.7 xlsxjars_0.6.1 openxlsx_4.0.17 stringr_1.3.0
[8] data.table_1.11.2 RJDBC_0.2-7.1 rJava_0.9-9 DBI_1.0.0
loaded via a namespace (and not attached):
[1] Rcpp_0.12.17 digest_0.6.15 withr_2.1.2 R6_2.2.2 git2r_0.21.0 magrittr_1.5 httr_1.3.1 stringi_1.1.7 curl_3.2
[10] tools_3.5.0 compiler_3.5.0 memoise_1.1.0
[1] https://cran.r -проект.org / web / packages / data.table / data.table.pdf
[2] https://github.com/Rdatatable/data.table/issues/2933