Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago

Calling a column parameter in a custom function

Hello,

I have created a custom function in power bi that outputs a data table for an Arima model.  I was able to successfully call a "dataset" parameter, so the user could choose a specific table, but when I tried to do the same with a "column" parameter in my function it did not work. Here is my code,

fnr = [
Arima.model=

(dataset as table,column as list) as table=>

let

  RScript=R.Execute("
  library(forecast)
library(tseries)
Values<-dataset[,4]
ValuesTs<-ts(Values,start=c(1999,1),frequency=4,end=c(2019,4))
fit<-auto.arima(ValuesTs,stepwise=FALSE,approximation=FALSE)                  
df<-data.frame(forecast(fit,h=16))
df['Years']<-seq(2020,2035,1)

",[dataset=dataset]),
output=RScript 
in
   output
    ],

As you can see, I am currently just grabbing the column I need by using the "dataset" parameter but I would like to replace that with my "column" parameter.  I have tried many different ways but I am thinking that I simply have some formatting issues that are making this difficult.  Any help would be greatly appreciated. Thanks.

2 Replies

  • v-yuta-msft's avatar
    v-yuta-msft
    Community Support

    Anonymous ,

     

    What does the error message say? How about change the parameter with other names like "param1", "param2"?

     

    Regards,

    Jimmy Tao

    • Anonymous's avatar
      Anonymous
      Not applicable

      The error is: object 'column' can't be found, even though I do select a column for that parameter when I invoke the function

      Which is why I figured I had a formatting error when I would try to reference that parameter. This is my code when I tried a different parameter name instead of 'column', unfortunately I got the same error message:

       fnr = [
      Arima.model=

      (dataset as table,param1 as list) as table=>

      let

        RScript=R.Execute("
        library(forecast)
      library(tseries)
      Values<-param1
      ValuesTs<-ts(Values,start=c(1999,1),frequency=4,end=c(2019,4))
      fit<-auto.arima(ValuesTs,stepwise=FALSE,approximation=FALSE)                  
      df<-data.frame(forecast(fit,h=16))
      df['Years']<-seq(2020,2035,1)

      ",[dataset=dataset]),
      output=RScript 
      in
         output
          ],