2017-02-22 5 views
0

Я думаю, что это ошибка в round_date() от lubridate пакета, но я хочу быть уверен.round_date() не работает для определенного объекта POSIXct

Это работает:

round_date(as.POSIXct("2016-10-16 01:00:19", tz = "BRST")) 
[1] "2016-10-16 01:00:19 BRST" 

Это не работает (я просто установить блок параметров в "неделю"):

round_date(as.POSIXct("2016-10-16 01:00:19", tz = "BRST"), unit = "week") 
[1] NA 

Является ли это ошибка или я что-то не хватает? Спасибо.

Session Info:

> sessionInfo() 
R version 3.3.2 (2016-10-31) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows Server >= 2012 x64 (build 9200) 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] dplyr_0.5.0   tidyr_0.6.0   tibble_1.2   
[4] tidyverse_1.0.0  readr_1.0.0   csutils_0.1.0  
[7] knitr_1.15.1   DT_0.2    forcats_0.1.1  
[10] purrr_0.2.2   ggrepel_0.6.3  ggplot2_2.1.0  
[13] stringi_1.1.2  lubridate_1.6.0  magrittr_1.5   
[16] randomForest_4.6-12 RevoUtilsMath_10.0.0 RevoUtils_10.0.2  
[19] RevoMods_10.0.0  MicrosoftML_1.0.0 mrsdeploy_1.0  
[22] RevoScaleR_9.0.1  lattice_0.20-34  rpart_4.1-10   
[25] DBI_0.5-1   RODBC_1.3-14   

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.7   plyr_1.8.4    iterators_1.0.8  
[4] tools_3.3.2   digest_0.6.10   jsonlite_1.1   
[7] mrupdate_1.0.0   gtable_0.2.0   foreach_1.4.3   
[10] CompatibilityAPI_1.1.0 curl_2.2    stringr_1.1.0   
[13] htmlwidgets_0.7  grid_3.3.2    R6_2.2.0    
[16] scales_0.4.0   codetools_0.2-15  htmltools_0.3.5  
[19] assertthat_0.1   colorspace_1.2-7  lazyeval_0.2.0   
[22] munsell_0.4.3 
+2

не воспроизводится –

+0

Что такое 'sessionInfo()'? –

+0

@SandipanDey Я отредактировал, посмотрим, воспроизводится ли это сейчас, пожалуйста. tks – Athos

ответ

0

Я думаю, вам нужно указать tz= аргумент

x <- as.POSIXct("2016-10-16 01:00:19") 
y <- as.POSIXct("2016-10-16 01:00:19", tz = 'BRST') 


> lubridate::round_date(x, 'week') 
[1] NA 
> lubridate::round_date(y, 'week') 
[1] "2016-10-16 BRST" 
> 

разница здесь:

> attributes(x) 
$class 
[1] "POSIXct" "POSIXt" 

$tzone 
[1] "" 

> attributes(y) 
$class 
[1] "POSIXct" "POSIXt" 

$tzone 
[1] "BRST" 

Если параметр unit= не второй, минуту, час или день, lubridate::round_date три es, чтобы получить этот атрибут где-нибудь.

+0

Это сработало, спасибо. Но я до сих пор не знаю, почему он вернулся NA с tz = "BRST"! – Athos