TSLM Error: Replacement Has Length Zero

user1477388

I have the following data structure:

d <- structure(list(Date = structure(c(17349, 17350, 17351, 17352, 
                                       17353, 17354, 17355, 17356, 17357, 17358, 17359, 17360, 17361, 
                                       17362, 17363, 17364, 17365, 17366, 17367, 17368, 17369, 17370, 
                                       17371, 17372, 17373, 17374, 17375, 17376, 17377, 17378, 17379, 
                                       17380, 17381, 17382, 17383), class = "Date"), Ratio = c(67, 50, 
                                                                                               67, 50, 100, 50, 33, 67, 0, 0, 0, 0, 100, 75, 0, 0, 75, 100, 
                                                                                               67, 33, 33, 33, 50, 50, 67, 100, 67, 50, 25, 25, 33, 33, 100, 
                                                                                               33, 0)), .Names = c("Date", "Ratio"), row.names = 183:217, class = "data.frame")

And, using the xts package I create a time series like so:

library(xts)
dates = as.Date(d$Date,"%Y-%m-%d")
xs = xts(d$Ratio,dates)

Finally, I attempt to partition the data and train a linear model:

library("forecast")
train.ts <- window(xs, start = as.Date("2017-07-01"), end = as.Date("2017-08-01"))
val.ts <- window(xs, start = as.Date("2017-08-02"), end = as.Date("2017-08-04"))
d.lm <- tslm(train.ts ~ trend + I(trend^2))

Attempting to train the model results in the following error:

Error in forecast:::datamat(train.ts) : replacement has length zero

What is this error and how can I resolve it?

Note: I initially suspected this error was due to NAs throughout the dataset; however, I have since coerced these to zero to no avail!

Edit: This is the full reproducible example (with a suggestion from @Scarabee regarding converting the xts to a ts):

d <- structure(list(Date = structure(c(17349, 17350, 17351, 17352, 
                                       17353, 17354, 17355, 17356, 17357, 17358, 17359, 17360, 17361, 
                                       17362, 17363, 17364, 17365, 17366, 17367, 17368, 17369, 17370, 
                                       17371, 17372, 17373, 17374, 17375, 17376, 17377, 17378, 17379, 
                                       17380, 17381, 17382, 17383), class = "Date"), Ratio = c(67, 50, 
                                                                                               67, 50, 100, 50, 33, 67, 0, 0, 0, 0, 100, 75, 0, 0, 75, 100, 
                                                                                               67, 33, 33, 33, 50, 50, 67, 100, 67, 50, 25, 25, 33, 33, 100, 
                                                                                               33, 0)), .Names = c("Date", "Ratio"), row.names = 183:217, class = "data.frame")

library(xts)
dates = as.Date(d$Date,"%Y-%m-%d")
xs = xts(d$Ratio,dates)

library("forecast")
train.ts <- window(xs, start = as.Date("2017-07-01"), end = as.Date("2017-08-01"))
val.ts <- window(xs, start = as.Date("2017-08-02"), end = as.Date("2017-08-04"))
d.lm <- tslm(as.ts(train.ts) ~ trend + I(trend^2)) # results in error Error in [.data.frame(data, , 1) : undefined columns selected

Output of sessionInfo():

> sessionInfo()
R version 3.1.0 (2014-04-10)
Platform: x86_64-w64-mingw32/x64 (64-bit)

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

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

other attached packages:
[1] forecast_7.1      timeDate_3012.100 xts_0.9-7         zoo_1.7-13       

loaded via a namespace (and not attached):
 [1] colorspace_1.2-4 fracdiff_1.4-2   ggplot2_2.1.0    grid_3.1.0       gtable_0.1.2     lattice_0.20-29  munsell_0.4.2   
 [8] nnet_7.3-8       parallel_3.1.0   plyr_1.8.1       quadprog_1.5-5   Rcpp_0.11.1      scales_0.4.0     tools_3.1.0     
[15] tseries_0.10-34 

Errors updating xts package:

require(devtools)
# results in error "Error in as.POSIXct.default(value) : do not know how to convert 'value' to class “POSIXct”"
install_version("xts", version = "0.10", repos = "http://cran.us.r-project.org")

# results in error "Warning: invalid package 'https://cran.r-project.org/src/contrib/xts_0.10-0.tar.gz'"
install.packages("https://cran.r-project.org/src/contrib/xts_0.10-0.tar.gz", repos = NULL, type="source")
Scarabee

After updating R and packages forecast and xts to their latest versions, the error message is different:

d.lm <- tslm(train.ts ~ trend + I(trend^2))
# Error in names(vars)[length(vars)] <- make.names(colnames(vars[[i]])[j]) : 
#   replacement has length zero

We can avoid it by converting train.ts into a ts object:

d.lm <- tslm(ts(train.ts) ~ trend + I(trend^2))
d.lm
# Call:
# tslm(formula = ts(train.ts) ~ trend + I(trend^2))
# 
# Coefficients:
# (Intercept)        trend   I(trend^2)  
#    57.52770     -1.67996      0.04963  

Note: it seems that ts() keeps the index of the times series, while as.ts() doesn't.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Error: Replacement has length zero R

From Dev

'replacement has length zero' error in R

From Dev

for Loop - Replacement has length zero

From Dev

replacement has length zero in nested loop

From Dev

R caret package rfe never finishes error task 1 failed - "replacement has length zero"

From Dev

R caret package rfe never finishes error task 1 failed - "replacement has length zero"

From Dev

R Error: replacement diagonal has wrong length

From Dev

R Error: replacement diagonal has wrong length

From Dev

Why for loop is working with one data set, yet error of replacement has length zero with very similar data set r

From Dev

String cannot be of zero length error

From Dev

Error number of items to replace is not a multiple of replacement length

From Dev

Forecasting with `tslm` returning dimension error

From Dev

if statement in R. Error argument is of length zero

From Dev

r if statement meet error: argument is of length zero

From Dev

R aggregate error: "replacement has <foo> rows, data has <bar>"

From Dev

Error - replacement has [x] rows, data has [y]

From Dev

R Quantile Error - replacement has n rows, data has p

From Dev

Error in boot() related to replacement length and data or data types? - R

From Dev

R error: "number of items to replace is not a multiple of replacement length"

From Dev

RStudio Shiny Error - number of items to replace is not a multiple of replacement length

From Dev

RMOA predict error (number of items to replace is not a multiple of replacement length)

From Dev

Error in R :Number of items to replace is not a multiple of replacement length

From Dev

PG::Error: ERROR: zero-length delimited identifier at or near """"

From Dev

R error in '[<-.data.frame'... replacement has # items, need #

From Dev

ERROR: MethodError: 'length' has no method matching length(::Filter{Function,Tuple{...}})

From Dev

While loop in R giving "argument is of length zero" error

From Dev

error message in R : if (nomZ %in% coded) { : argument is of length zero

From Dev

error message in R : if (nomZ %in% coded) { : argument is of length zero

From Dev

Error when iterating for loop over columns: "argument is of length zero"

Related Related

  1. 1

    Error: Replacement has length zero R

  2. 2

    'replacement has length zero' error in R

  3. 3

    for Loop - Replacement has length zero

  4. 4

    replacement has length zero in nested loop

  5. 5

    R caret package rfe never finishes error task 1 failed - "replacement has length zero"

  6. 6

    R caret package rfe never finishes error task 1 failed - "replacement has length zero"

  7. 7

    R Error: replacement diagonal has wrong length

  8. 8

    R Error: replacement diagonal has wrong length

  9. 9

    Why for loop is working with one data set, yet error of replacement has length zero with very similar data set r

  10. 10

    String cannot be of zero length error

  11. 11

    Error number of items to replace is not a multiple of replacement length

  12. 12

    Forecasting with `tslm` returning dimension error

  13. 13

    if statement in R. Error argument is of length zero

  14. 14

    r if statement meet error: argument is of length zero

  15. 15

    R aggregate error: "replacement has <foo> rows, data has <bar>"

  16. 16

    Error - replacement has [x] rows, data has [y]

  17. 17

    R Quantile Error - replacement has n rows, data has p

  18. 18

    Error in boot() related to replacement length and data or data types? - R

  19. 19

    R error: "number of items to replace is not a multiple of replacement length"

  20. 20

    RStudio Shiny Error - number of items to replace is not a multiple of replacement length

  21. 21

    RMOA predict error (number of items to replace is not a multiple of replacement length)

  22. 22

    Error in R :Number of items to replace is not a multiple of replacement length

  23. 23

    PG::Error: ERROR: zero-length delimited identifier at or near """"

  24. 24

    R error in '[<-.data.frame'... replacement has # items, need #

  25. 25

    ERROR: MethodError: 'length' has no method matching length(::Filter{Function,Tuple{...}})

  26. 26

    While loop in R giving "argument is of length zero" error

  27. 27

    error message in R : if (nomZ %in% coded) { : argument is of length zero

  28. 28

    error message in R : if (nomZ %in% coded) { : argument is of length zero

  29. 29

    Error when iterating for loop over columns: "argument is of length zero"

HotTag

Archive