Tôi gặp sự cố với chức năng stats::lag
khi sử dụng gói dplyr
. Cụ thể, tôi nhận được kết quả khác với hàm lag trước và sau khi tải dplyr
.Thay đổi hành vi của số liệu thống kê :: độ trễ khi tải gói dplyr
Ví dụ: đây là chuỗi thời gian mẫu. Nếu tôi tính toán độ trễ với k = -1
, loạt tụt bắt đầu từ 1971.
data <- ts(1:10, start = 1970, frequency = 1)
lag1 <- stats::lag(data, k = -1)
start(lag1)[1]
## [1] 1971
Bây giờ, nếu tôi tải dplyr
, cuộc gọi cùng mang lại một loạt tụt bắt đầu từ năm 1970.
library(dplyr)
##
## Attaching package: 'dplyr'
##
## The following object is masked from 'package:stats':
##
## filter
##
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
lag2 <- stats::lag(data, k = -1)
start(lag2)[1]
## [1] 1970
start(lag1)[1] == start(lag2)[1]
## [1] FALSE
Do các cảnh báo khi tải dplyr
, tôi đoán là điều này phải làm với Môi trường. Tuy nhiên, tách ra dplyr
dường như không giúp được gì.
detach("package:dplyr", unload = TRUE, character.only = TRUE)
lag3 <- stats::lag(data, k = -1)
start(lag3)[1]
## [1] 1970
start(lag1)[1] == start(lag3)[1]
## [1] FALSE
Mọi đề xuất đều được đánh giá cao. Giải pháp duy nhất của tôi cho đến thời điểm này là để khởi động lại phiên R giữa việc tính toán lag1
và lag2
.
Dưới đây là phiên của tôi:
## setting value
## version R version 3.2.0 (2015-04-16)
## system i386, mingw32
## ui RTerm
## language (EN)
## collate English_Canada.1252
## tz America/New_York
##
## package * version date source
## assertthat 0.1 2013-12-06 CRAN (R 3.2.0)
## bitops 1.0-6 2013-08-17 CRAN (R 3.2.0)
## DBI 0.3.1 2014-09-24 CRAN (R 3.2.0)
## devtools 1.8.0 2015-05-09 CRAN (R 3.2.0)
## digest 0.6.8 2014-12-31 CRAN (R 3.2.0)
## dplyr 0.4.1 2015-01-14 CRAN (R 3.2.0)
## evaluate 0.7 2015-04-21 CRAN (R 3.2.0)
## formatR 1.2 2015-04-21 CRAN (R 3.2.0)
## git2r 0.10.1 2015-05-07 CRAN (R 3.2.0)
## htmltools 0.2.6 2014-09-08 CRAN (R 3.2.0)
## httr * 0.6.1 2015-01-01 CRAN (R 3.2.0)
## knitr 1.10.5 2015-05-06 CRAN (R 3.2.0)
## magrittr 1.5 2014-11-22 CRAN (R 3.2.0)
## memoise 0.2.1 2014-04-22 CRAN (R 3.2.0)
## Rcpp 0.11.6 2015-05-01 CRAN (R 3.2.0)
## RCurl 1.95-4.6 2015-04-24 CRAN (R 3.2.0)
## rmarkdown 0.6.1 2015-05-07 CRAN (R 3.2.0)
## rversions 1.0.0 2015-04-22 CRAN (R 3.2.0)
## stringi 0.4-1 2014-12-14 CRAN (R 3.2.0)
## stringr 1.0.0 2015-04-30 CRAN (R 3.2.0)
## XML 3.98-1.1 2013-06-20 CRAN (R 3.2.0)
## yaml 2.1.13 2014-06-12 CRAN (R 3.2.0)
Tôi cũng đã thử unloadNamespace
, theo đề nghị của @BondedDust:
unloadNamespace("dplyr")
lag4 <- stats::lag(data, k = -1)
## Warning: namespace 'dplyr' is not available and has been replaced
## by .GlobalEnv when processing object 'sep'
start(lag4)[1]
## [1] 1970
start(lag1)[1] == start(lag4)[1]
## [1] FALSE
'detach' có thể không hoàn toàn hiệu quả. Tôi thường sử dụng 'unloadNamespace'. (Nhưng tôi chỉ cố gắng và nó không hiệu quả.) –
Cảm ơn đề nghị. Tôi vẫn nhận được 'bắt đầu = 1970' mặc dù. Tuy nhiên, đã thêm tùy chọn này vào câu hỏi ở trên. –
Vâng. Đồng ý điều này thật khó hiểu. 'getAnywhere (lag.default)' với các truy xuất được nạp dull: '2 đối tượng khác nhau khớp với 'lag.default' đã được tìm thấy ở những nơi sau đây phương pháp S3 đã đăng ký trễ từ không gian tên dplyr không gian tên: dplyr không gian tên: stats Sử dụng [ ] để xem một trong số đó'. Dường như dplyr đang ghi đè lag.default mà không đưa ra cảnh báo về nó. –