Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
I need to grab a value from R using R.ScriptEval() for KPI measure. The R code works and produces a discrete value. The Expression is "OK" ; but the KPI produces null (nothing, just a dash). Yes, Rserve and SSEtoRServe are both on.
Any help is appreciated.
Here's the Expression I am using:
R.ScriptEval('library(TTR);library(forecast);newdata <-read.csv("sldsmp.csv");frcst <-forecast(ts(q$newdata$a1ccnt));frcst1 <-as.data.frame(q$frcst[2]);frcst2 <-round(q$frcst1[1,],0);q$frcst2')
Here's the R code:
library(TTR)
library(forecast)
newdata <-read.csv("C:/<...>/Documents/Qlik/sldsmp.csv")
frcst <-forecast(ts(newdata$a1ccnt))
frcst1 <-as.data.frame(frcst[2])
frcst2 <-round(frcst1[1,],0)
P.S:
Here's the .csv file I am referencing:
See attachment.
Thank you!
Oguchi
If you load the csv into qlik in the load script by the following:
LOAD
"Month",
crvcnt,
htncnt,
clrcnt,
a1ccnt,
trnd
FROM [lib://mycsv/sldsmp.csv]
(txt, codepage is 28591, embedded labels, delimiter is ',', msq);
In the KPI object you set the following expression, then it works:
R.ScriptAggr('library(TTR);
library(forecast);
frcst <- forecast(ts(q$a1ccnt));
frcst1 <- as.data.frame(frcst[2]);
frcst2 <- round(frcst1[1,],0);'
, a1ccnt, Month)
Hi Oruchi,
The ScriptEval function takes a vector as input and returns a vector. This may not be what you want in a KPI object. Have a look here: sse-r-plugin/GetStarted.md at master · qlik-oss/sse-r-plugin · GitHub
I think for a KPI object it would be better to use the ScriptAggr function.
Another suggestion would be to load the data in the CSV into your qlik datamodel and then pass the values as a q$ parameter to your forcast call.
So it would look something like
R.ScriptAggr('library(TTR);library(forecast);frcst <-forecast(ts(q$newdata,$a1ccnt));frcst1 <-as.data.frame(q$frcst[2]);frcst2 <-round(q$frcst1[1,],0);q$frcst2', data as newdata);
Regards,
Bas.
Hello, Bas:
Thanks for helping, but this did not work for me (yes, my csv file is script-loaded) because
<...data as newdata> at the end of the expression triggers the Error, "Bad field name: data"
If you load the csv into qlik in the load script by the following:
LOAD
"Month",
crvcnt,
htncnt,
clrcnt,
a1ccnt,
trnd
FROM [lib://mycsv/sldsmp.csv]
(txt, codepage is 28591, embedded labels, delimiter is ',', msq);
In the KPI object you set the following expression, then it works:
R.ScriptAggr('library(TTR);
library(forecast);
frcst <- forecast(ts(q$a1ccnt));
frcst1 <- as.data.frame(frcst[2]);
frcst2 <- round(frcst1[1,],0);'
, a1ccnt, Month)
I appreciate your help, @Tobias: this is the correct solution.
Worked perfect!