The aim of this tutorial is to easily show data and to provide results with a simple linear regression.
We will use the preloaded
Begin a new project with the File menu, then NewProject..., select RPGM project and name the new project "LinearRegression".
The project is created with two files: LinearRegression.ppro which contains the general properties of the program, and main.pseq.
The file main.pseq will contain a sequence of tasks as a flowchart and RPGM will execute each step by following the order of the flowchart. It has a Start step and we will connect a new step to this one.
At any time, the program can be tested and executed by pressing F5.
Our first goal is to show the data of the
cars variable which already exists in R. To do so, a graphical interface must be created and added to main.pseq.
Do a right click on the File explorer, choose New File and select PGM interface (.pgm) on the right and name the file ShowInputs.pgui. Before adding elements to the interface, it must be added in the sequence. Go back to main.pseq and with a right click choose Add a GUI. Click on the created step and in the property window, add ShowInputs.pgui in File. An easier way to add a step in the sequence is to drag and drop ShowInputs.pgui from the File explorer on the sequence editor. Now, add an arrow from the Start step to our new GUI step with the mouse by drag and dropping. To remove the last error, with a right click, choose Add an end and connect ShowInputs.pgui with it.
Save the sequence with CTRL+S and press F5, you can see see that the program now enters the GUI step, but it is empty for now. Go back in the ShowInputs.pgui file with a double click on its step in main.pseq. In the GUI Editor, click on + Add a widget and click on Label to add a Label, and then close the panel. You can now access to the properties of your widget by clicking on it in the preview interface.
We will now add a Grid widget for displaying the data
ShowDataif you want to access it in R after this step.
carsis an R expression which must be evaluated with R. Otherwise RPGM will try to set the value to "cars" as a string of 4 characters.
By pressing F5, the current result is:
We will now write an R code for computing the linear regression. Use a right click on the File explorer and choose New file, and name the new file Regression.R. Don't forget that the script must be added in the Sequencer to be executed. Go back on main.pseq and add an R Script step linked to the Regression.R file and connect it to ShowInputs.pgui so that the R file will be executed after our graphical interface. Don't forget that you can directly drag and drop the file from the File explorer in order to add it in the sequencer.
We write the following code which computes the linear regression of dist against speed of the cars data. It also provides a graphic that we will display in another step.
png(rpgm.outputFile("regression.png")) plot(cars, pch=16, col="darkblue", main="Linear regression") reg <- lm(dist ~ speed, data=cars) abline(reg$coefficients, col="red") dev.off()
rpgm.outputFile generates a path with the output folder. With F5, execute the program. The output folder can be open at the end where we have our graphic:
You get this graphic in the output folder.
Now it's time to show the graphic to the user in a new GUI. Create a new .PGM interface (.pgm) file and name it Results, and add it to main.pseq after the R script. The graphic will be display with an Image widget, since our graphic is an image. There is also a Graph widget for displaying interactive graphics, but we will use an image for now.
In Results.pgui, create a Label field with Results as value and 32 for the font size. Then add a second widget of type Image and set the value field to rpgm.outputFile("regression.png") with the box Is an R expression checked.
We get the following result by executing the program:
We finish by changing the project file:
Push F5, you can see the title on the left the title and the image.
This ends our first very simple program! You can download the program as a pgm file for RPGM here (that you can create with the top menu PGM -> Export as PGM) and as a zip file containing all the project for RCode here.