Error: argument "x" is missing, with no default

57,151

Looking at your code and tracing the sequence of steps to MyData1, I identified these lines:

  1 c1<-as.matrix(forecast32$fitted)
  2 d1<-as.matrix(forecast32_1$fitted)
  3 util2<-(c1*100)/d1
  4 MyData1$util2 <- util2
  5 MyData1 <- MyData1[,c(col(),col()+1)]

Assuming MyData is an object which already exists as a matrix or data.frame, the issue is because you are not giving the Extract operator an index specifying the rows or column you wish to extract. Instead you've passed the col function without specifying a matrix-like object for it to use.

 5 MyData1 <- MyData1[,c(col(),col()+1)]

Should Be

5 MyData1 <- MyData1[,c(col(x),col(x)+1)]

However, I must ask, what are you trying to accomplish with this subset operation? There maybe a more elegant and compact solution that is cleaner than using the col function to specify the columns you'd like to extract from MyData1.

Share:
57,151
Jojo Acharya
Author by

Jojo Acharya

Updated on July 06, 2020

Comments

  • Jojo Acharya
    Jojo Acharya almost 4 years

    I am getting an error: argument "x" is missing, with no default Upon debugging, I found this out to be in the line : MyData1<- MyData()[,c(col(),col()+1)] I have tried to pass the argument as a single vector like MyData1<- MyData()[,p=c(col(),col()+1)]

    Error: Error in [.data.frame: unused argument (p = c(col(), col() + 1))

    This is just a snippet from my actual code:

    TotalTS<-ts(MyData()[,Col()],start=Start(),frequency = Fre())
        InsampleTs<-window(TotalTS,start = c(Start(),1),end=c(2017,5))
        TotalTS1<-ts(MyData()[,Col()+1],start=Start(),frequency = Fre())
        InsampleTs1<-window(TotalTS1,start = c(Start(),1),end=c(2017,5))
    
        MyData1<- MyData()[,c(col(),col()+1)]
        MyData1$util1<-MyData1[,1]*100/MyData1[,2]
        popj<-nrow(MyData())-length(InsampleTs)
    
    
        if(input$F6==1){
          if(input$AM==1){
    
            forecast32<-hw(InsampleTs,h=Col1(),level = input$CI2)
            forecast32_1<-hw(InsampleTs,h=Col1(),level = input$CI2)
    
            c<-as.matrix(forecast32$x)
            d<-as.matrix(forecast32_1$x)
    
            c1<-as.matrix(forecast32$fitted)
            d1<-as.matrix(forecast32_1$fitted)
            util2<-(c1*100)/d1
            util1<-(c*100)/d
            c11 <- as.matrix(forecast32$mean[1:popj])
            d11<- as.matrix(forecast32_1$mean[1:popj])
            c12 <- as.matrix(forecast32$lower[1:popj])
            d12<- as.matrix(forecast32_1$lower[1:popj])
            c13 <- as.matrix(forecast32$upper[1:popj])
            d13<- as.matrix(forecast32_1$upper[1:popj])
    
            c111 <- c11*100/d11
          c112<- c12*100/d12
            c113 <- c13*100/d13
            MyData1$util2 <- util2
            MyData1 <- MyData1[,c(col(),col()+1)]
    
            e<-as.matrix(forecast32$mean[-c(1:popj)])
            f<-as.matrix(forecast32_1$mean[-c(1:popj)])
            e2<-as.matrix(forecast32$upper[-c(1:popj)])
            f2<-as.matrix(forecast32_1$upper[-c(1:popj)])
            e1<-as.matrix(forecast32$lower[-c(1:popj)])
            f1<-as.matrix(forecast32_1$lower[-c(1:popj)])
    
            e111 <- e*100/f
            e113<- e2*100/f2
            e112 <- e1*100/f1
    
           r<- cbind(e111,e112,e113)
           colnames(r) <- c("Predicted","lower Limit","Upper Limit")
    
            MyData1 <- ts(MyData1,start=c(Start(),1), end=c(2017,5), frequency=Fre())
            #r<-ts(r,start=c(2017,6),end=c((Hstar()+2),Fre()))
            r<-ts(r,start=c(2017,6),end=c(2019,6), frequency = 12)
            autoplot(ts( cbind(r,MyData1),start = c(Start(),1),frequency=Fre() ),facets = F)
            }**strong text**