R data.table Rolling Join когда rollends = (ЛОЖЬ, ЛОЖЬ) - PullRequest
0 голосов
/ 04 июня 2018

Я пытаюсь выполнить скользящее соединение в пакете 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...