Created: 2015-10-14. GUI Documentation contains an in-depth description of all the features in the RCloud GUI. RCloud documentation is currently maintained by Spencer Seidel on a voluntary basis.
RCloud supports Chrome, Chromium (the open-source version of Chrome), and Firefox web browsers, so you’ll need to download the latest version of any of these to get started.
Next, RCloud uses GitHub technology to store information about users and their RCloud notebooks. Therefore, a new user must register with their installation’s instance of GitHub. Please refer to your installation’s local documentation about creating new users.
Finally, every installation’s networking architecture will be different. Please refer to your installation’s local documentation for any relevant information.
The RCloud GUI consists of:
Clicking on the title of a panel opens and closes (and resizes in some cases) RCloud panels, such as Notebooks and Search.
When all RCloud panels are minimized in a column, a “+” sign will appear, as shown here.
Clicking the “+” sign will restore all panels in the column to their previous sizes. Now, a “-“ sign will appear, shown below, which will minimize all open panels in a column.
To change the width of a panel, hover your mouse over the the edge that touches the cells in the middle. When it changes into a double arrow, click and drag left and right to resize.
Here is the RCloud header bar:
: Please see the section for more information.
: Click the star icon to toggle the appearance of the current notebook in the “Notebooks I Starred” area on the left sidebar. The icon displays the number of RCloud users who have added the notebook to their interests. In the case shown above, five users have done so.
: Click the fork icon to make a new copy of a notebook for editing.
: Whenever you run a notebook, RCloud automatically saves a revision in GitHub. If you need to close your RCloud session immediately without waiting for a lengthy run time, click the save icon to save a revision immediately.
: Click the play icon to run all markdown and prompt cells in the current notebook. Cells are executed asynchronously. RCloud displays the output as it becomes available.
: This is the title of the current notebook. In this case, “Markdown Basics.” Click the title to change it.
Note that you can create sub-directories simply by adding any number of forward slashes ‘/’, like on a Unix command line. E.g. Cookbook for R/1 - Basics/1.1 - Indexing into a Data Structure. If the sub-directories don’t already exist, RCloud will create them on the fly, so there is no need to create individual sub-directories before changing the name of your notebook. Sub-directories allow you to group your notebooks and will be displayed in a tree-like hierarchy in the Notebooks section of the left sidebar.
Also, if the notebook was created as a result of forking another notebook, the forked notebook name is displayed in a smaller font beneath the current notebook’s title.
Click the Advanced tab to access more features:
: Click Logout to end your RCloud session.
There are two types of cells in RCloud, both used for inserting code. The first is the prompt cell, which allows you to interact with RCloud in more-or-less command-line fashion. Prompt cells are useful for quick, interactive sessions.
Prompt cells support R, Python, and bash, which you can specify in the pull-down menu to the right of each cell:
The second type is the markdown cell. Markdown cells are better suited for cutting and pasting chunks of R code and adding simple formatted documentation. Note that markdown cells do not currently support Python or bash.
We’ll get to the difference between Markdown and RMarkdown cells in a moment.
“Data marshalling,” or using objects between cells of different languages, is not supported at this time. Also, each “shell” cell represents a separate Unix shell, so environment variables cannot be passed across shell cells. However, R environment variables defined in R cells are inherited by shell cells automatically. Shell cell commands are executed in bash.
Prompt cells vaguely mimic an interactive R, Python, or bash shell. Type a line of code, press Enter/Return, and the command is immediately executed. When RCloud is finished, you’re presented with the result and a new prompt cell.
For example, here’s the result of pressing Enter/Return after typing a command:
Note that after executing a command, RCloud presents several icons that allow you to interact with the cell: , , , and . Here’s a brief description of each:
Another way to interact in multi-line mode with prompt cells is to cut and paste multiple lines of code into the cell. When you do, you’ll see something like this:
To execute the code, simply put your cursor at the end of the last line and press Enter/Return.
Note that it is currently not possible to insert a prompt cell above an existing prompt cell. The only way to add new prompt cells is by executing the current prompt cell. When you do, a new cell is created under the existing one.
Throughout this documentation, prompt cells are sometimes referred to as R cells, Python cells, or bash cells.
Markdown cells are where you enter and edit blocks of multi-line R markdown. Markdown is a plain-text formatting syntax used to create simple formatted documents. In order to differentiate your R code from text, surround your code with the following (back ticks, brackets and “r”):
```{r} ## R code goes here print("Hello World!") ```
Here’s some sample markdown, suitable for cutting and pasting into a markdown cell:
## Markdown Basics This is plain text. Empty lines are interpreted as new paragraphs. Single newlines are ignored by the markdown renderer. ## Code Samples If you'd like to include code samples in your markdown, indent each line with at least 4 spaces or a tab. Here's a hello world in R, for example. print ("hello, world!", quote = FALSE) print ("some more text") ## Emphasis **For bold text, use two asterisks**. *For italics, use one*. ## Lists Use an asterisk before each list item on a newline for unordered lists: * this is a * list To produce an ordered list, use a number before each list item. Any number will do. The markdown renderer will ignore the number prefix you provide and count the list items itself: 1. this is an ordered 1. list ## And here's our hello world R program ```{r} print ("hello, world!", quote = FALSE) print ("some more text") ```
When you’re done editing a markdown cell, click the icon to the right of the cell. Here is the result:
Full documentation of markdown syntax is available here.
If you find a typo or would like to otherwise edit your code, click the icon. You can also click on any code portions of the output to enter edit mode.
To insert a cell above, click the icon. To insert a cell below, click the icon. To delete a cell altogether, click the icon.
The run-state of each cell is displayed via an icon in between the gutter and cell name:
: The cell has not been run. This could also mean that the cell ran successfully, but the output may not be consistent with the code in the cell because the code was modified after RCloud initiated a run of your notebook.
: The cell is queued to be run.
: RCloud initiated a run of your notebook, but a cell’s code was modified after execution was initiated.
: The cell is running.
: The cell is running, but because the code was modified after notebook execution was initiated, the output may not be consistent with the code.
: The cell ran successfully.
: The cell ran but had errors.
: The cell’s run was cancelled.
When you run a notebook, you can stop running cells and prevent queued cells from running by pressing the stop button, located in the header at the top of the screen:
This ends an interrupt to the R process and terminates execution if possible.
To rearrange your cells, click and drag the blank status area above the cell or the icon to the left of the cell.
To join cells of the same flavor, click the join icon at the right of the cell. This will combine the contents of the cell with the cell immediately above it.
Behind the scenes, RCloud uses several different R packages to render output. Markdown cells use the markdown and knitr packages directly for output. RMarkdown cells, on the other hand, use rmarkdown (a.k.a. R Markdown v2).
Currently RMarkdown support should be considered experimental.
Hover the mouse over a plot created in an R cell to make the disk icon appear in the upper right corner (see 1), which contains a list of available image formats. A widget at the lower-right corner can be used to resize the image (see 2).
Note that you can only save plots created in R cells.
RCloud supports the standard R locator()
function. When the locator is active, RCloud adds a blue border around the plot and changes the cursor to a crosshair:
To add points, left-click anywhere on the plot. To end or abort a locator request, press the <ESC> key. Once you have selected your locations, locator()
returns the points clicked:
Locators only work in R cells.
RCloud notebooks are simply collections of prompt and markdown cells, comments, and assets, which we’ll get to later. Everything in your public notebooks is searchable by every other user of the system. This encourages reuse and makes learning how to use the hundreds of available R packages easier.
You can also browse everyone else’s notebooks by opening the Notebooks section on the left sidebar. To do this, simply click on Notebooks at the top of the panel. This toggles the panel, opening or closing it:
To load a notebook into the current session, click on the name. After it loads, you can examine the source code or click “Run” in the header bar to execute all the cells on the page.
To create a new, blank notebook, click the + sign at the right of the Notebooks panel header area:
RCloud will automatically choose a title for your new notebook, Notebook N, where N is the next available number among your notebooks. To give your notebook a more meaningful title, click on the title in the header bar.
To change the default name of new notebooks, see the New Notebook Prefixes sub-section of the Settings section.
To run all the cells in your notebook, click the icon in the header bar.
RCloud notebooks are executed asynchronously. RCloud will show individual cell results as the results are ready to display.
Notebooks that run longer than a few seconds will cause the browser screen to dim and a please-wait message to be displayed.
Currently, RCloud has no explicit mechanism to stop a long-running notebook. If you mistakenly launch a long-running notebook, you can simply reload the notebook in another browser tab or reload the page. This doesn’t stop the execution behind the scenes, but the output of the previous run will not interrupt your current session. Be careful of side-effects, like changing the contents of a file in your local directory in such a way that it affects the output of the notebook.
To copy another user’s notebook, first navigate to it in the left sidebar and then click to load it into your current session. Now, you’re running another user’s public notebook in your own session. This is sufficient for running reports or performing other read-only activities. If you want to edit the notebook, you’ll need to make your own copy, or, “fork” it.
After you’ve loaded the notebook you want to fork, click the Fork icon in the header bar at the top of the screen:
After forking a notebook, you’ll own your own copy and therefore be able to edit it.
The fork icon is always available, which means you can fork your own notebooks. If you are viewing a previous version of a notebook, you can fork a copy of that version. Caution: currently when you fork your own notebook, the history is lost; we hope to fix this soon.
There are two mechanisms by which your work is saved in RCloud.
You can save your notebook at any time by clicking the icon in the header bar.
RCloud keeps track of your notebook versions automatically and frequently. Every time you save, create, or run a markdown or prompt cell, the newest version of your notebook is saved. To browse the versions of your notebook, which are stored chronologically with the latest version on top, hover over the name of your notebook in the left sidebar and click the clock icon. A drop-down list of versions will appear:
To change they way dates and times are displayed next to your notebook versions, see the show terse version dates setting.
To “tag” a notebook version, click twice on a version name to edit it in place.
Now, rather than referring to a specific notebook version with &version=hash
in a URL, you can refer to a specific notebook tag:
&tag=name
This is useful when you want to share a version of a notebook but plan to continue developing it. For example, you can tag a version as the “LatestProductionVersion,” and then apply that tag to another version when you’re ready to share your new work. This way, existing URLs (perhaps stored in someone’s bookmarks) won’t break as you update your notebooks.
Should you decide that a previous version of your notebook is the “best” version, you can make that version the current version by loading the desired previous version of the notebook and clicking the revert icon.
By default, all RCloud notebooks are visible to all RCloud users. If you’d like to toggle the Show/Hide flag on a notebook, hover over the name of your notebook on the left sidebar and click the eye icon. Note that hidden notebook titles are grayed out for owners and invisible to other users.
Hidden notebooks are only invisible within the RCloud interface. Hidden notebooks are still visible within the gists stored in your GitHub instance.
Clicking the icon will hide your notebook from other RCloud users.
Clicking the icon will make your notebook readable by other RCloud users.
Protected notebooks are readable only by the owner and (optionally) a select group of users and will not show up in search results (although previously unprotected versions might).
View or modify notebook protection by clicking the notebook “info” button next to the notebook name in the notebooks tree:
If you own the notebook, click the “public” link (or “no group” if that displays):
This opens the notebook protection dialog:
Here, you can assign the notebook to any group you are a member of, make it entirely private (readable only by you), or make it public (readable by anyone).
Use the second tab of the protection dialog to create/rename groups and/or assign other users as administrators/members of groups you administrate. Alternatively, you can select Manage Groups from the Advanced menu item on the header bar — note that the Notebook tab will be grayed out in that case, as Manage Groups is not notebook specific.
Unlike a hidden notebook, protected notebooks are not readable by anyone without permission, even within your GitHub instance.
To delete a notebook, hover over the name of your notebook in the left sidebar and click the icon.
RCloud will ask for a confirmation:
Click OK and the notebook will disappear from the left sidebar and the last-viewed available notebook will automatically load into the current session.
There are several ways you can share your notebooks with colleagues. When you click on the downward arrow next to the share icon in the header bar , a popup menu will appear:
This allows you to select the kind of URL you’d like to share. Make your selection using the popup menu and then right click on the icon to copy the hyperlink.
Note that if you have a tagged version of your notebook currently loaded, where appropriate, RCloud will populate the shared URL with the tag instead of the version. This is beneficial because then you can tag future versions with the same tag and not break existing URLs.
This is the simplest method. This will create a link that will allow someone to see the notebook code and execute the notebook within the RCloud IDE. Users who do not own the notebook will see the play and share icons in the header. Clicking the play icon will execute all cells in the notebook. Clicking the edit icon will return to the normal header, allowing a user to fork the notebook, etc.
To hide all UI elements, add &quiet=1
to the URL. Note that this works only with view.html.
This option is intended for FastRweb notebooks. Loading the URL (from anywhere, including other notebooks, a perl script, etc.) executes a notebook “behind the scenes” by opening a one-time R session, running the defined “function” within, shutting down the R session, and finally, returning the result. FastRweb notebooks MUST have a function named
function()
defined, as this what notebook.R tries to execute upon instantiation. Output from notebook.R can be anything. Text, binary data, whatever, as this information will ultimately be processed by whatever mechanism that called notebook.R.
notebook.R allows trailing paths to be processed by the notebook code if they start with /.self/. The subsequent path portion is passed to the run function as the .path.info argument. This allows notebooks to handle a “full tree” argument to the notebook on top of a single notebook URL.
E.g.: https://rcloud.mydomain.com/notebook.R/user/notebook/.self/foo/bar will call the notebook with .path.info set to /foo/bar. Note that the .self part distinguishes asset look up from a path info call.
See the notebook.R URLs section of the documentation for more detailed information about notebook.R URLs.
Unlike notebook.R, mini.html URLs open an R session via a Websocket and keep it open. Mini.html notebooks MUST have a function named rcw.result()
defined, as that is what mini.html tries to execute upon instantiation. Because the R session is kept open, users or processes can interact with the R session while the websocket is kept open.
RCloud supports the RStudio Shiny web application framework. To share Shiny-enabled notebooks, select this option.
To find out which users starred your notebook, click the notebook information icon:
To find text within your notebook, type Ctrl-F (Win/Linux) or Cmd-F (Mac) to open a find dialog at the top of your notebook:
To find and replace text within your notebook, type Ctrl-H (Win/Linux) or Cmd-Option-F (Mac) to open a find and replace dialog at the top of your notebook:
Access your recently opened notebooks via the Recent link in the Notebooks titlebar:
There many ways to use your own data in RCloud. Please see the example notebooks under RCloud Sample Notebooks for some examples. Here, we’ll take a closer look at the simplest method: uploading a flat file. Open the File Upload panel on the right sidebar by clicking on the heading. Then, select “Choose File” and browse to a local file, in this case “distrib.csv.”
Next, click the “Upload” button. If the file exists (just where, we’ll get to in a moment), RCloud prompts with a notice that it will be overwritten. If all goes well, RCloud confirms the upload.
The file now exists in your installation server’s home directory and is accessible from within RCloud. For example:
The first line of R code loads the contents of the CSV file into an object called “mydata.” The next line tells R to output a string version of the object.
The Upload to Notebook checkbox changes the way File Upload works. Rather than uploading your file to your home directory, RCloud will store the file inside your notebook as an “asset.” To view notebook assets, click on the assets bar on the right sidebar. Please see the Notebook Assets section for more information.
Notebooks can contain “assets,” which are files that can be used within your notebooks or simply for keeping track of unused code (as in the the case of scratch.R, which is a text file where you can keep bits of code while working on your notebook).
For example, from the previous example, lets create an asset called distrib.csv that contains the following data:
a,1 b,15 c,4
We can store this data in a new asset called “distrib.csv,” simply by clicking New Asset and typing distrib.csv as a name.
Now, this data is accessible in your R code:
In addition to manually entering asset text, you can also drag and drop files into the Assets panel to upload them:
RCloud automatically generates asset links and displays them in the lower left-hand corner of the Assets panel. To copy the URL, right-click on it.
Assets can be binary (e.g. an image). RCloud auto-detects the content format and transparently encodes and decodes using base-64 encoding. When possible, the content is displayed in its native format in the asset panel.
Assets are limited to 750KB each.
Assets can contain Cascading Style Sheet (CSS) formatting information. This changes the way information is presented when your notebook is executed. For example, here is a bit of CSS that defines a paragraph style:
p.mystyle {
font-size: 20px;
color: red;
}
To use this CSS as an asset, it needs to have a special name that begins with “rcloud-“ and ends with “.css”. In the example below, the name is “rcloud-mystyle.css”.
RCloud automatically uses CSS asset files with this file pattern and ignores others, so you can save bits of CSS in other files without worrying about overlap.
To use the p.mystyle paragraph style, simply reference it in markdown using HTML:
# My Header
Here is a bit of red text:
<p class="mystyle">This is red.</p>
Note that you must reload your notebook to apply the CSS.
Assets can also contain JavaScript. When editing JavaScript (files must have the .js extension), RCloud automatically uses a JavaScript editing mode, which has built-in syntax checking.
When editing HTML (files must have the .html or .htm extension), RCloud automatically uses an HTML editing mode, which has built-in syntax checking and tag completion.
To rename an asset, simply click on the file name on the asset’s tab.
It’s possible to construct a URL for a notebook asset by selecting Open in GitHub in the Advanced menu, locating your asset and right-clicking the “View Raw” icon, which looks like <> next to your asset. The URLs look like this:
https://github.mydomain.com/gist/rclouddocs/d2b9231aca224bbbb888/raw/efb98239f9acc030f98b2cd1957ce7c9b4b9f2c3/DummyData.csv
This is unwieldy. A better and more powerful way to access assets is via the HTTP entry point, notebook.R.
Notebook.R allows you to access your notebook in the following ways:
http://rcloud.mydomain.com/notebook.R/<notebook-id> http://rcloud.mydomain.com/notebook.R/<notebook-id>/<version-hash> http://rcloud.mydomain.com/notebook.R/<notebook-id>/<filename> http://rcloud.mydomain.com/notebook.R/<notebook-id>/<version-hash>/<filename> http://rcloud.mydomain.com/notebook.R/<user>/<notebook-name> http://rcloud.mydomain.com/notebook.R/<user>/<notebook-name>/<filename>
URLs ending in “<filename>” will return the given asset (file). To illustrate how it works using the previous example, any of these give HTTP access to the latest version of DummyData.csv:
http://rcloud.mydomain.com/notebook.R/d2b9231aca224bbbb888/DummyData.csv http://rcloud.mydomain.com/notebook.R/rclouddocs/Asset%20API/DummyData.csv
Access to assets isn’t the only thing you can do with notebook.R. Notice that in the list of ways to access your notebook above, not all methods reference a filename. If you reference a notebook or revision of a notebook, the URL will return the result of the evaluated notebook.
notebook.R is intended to be a general-purpose Remote Procedure Call (RPC) in R. RPCs in RCloud should always contain some markdown to document what the RPC does, what the arguments are, etc. This way other users can simply view your notebook in RCloud to understand how to use it. This isn’t enforced in any way but is encouraged to promote reuse. The markdown is only visible when users visit your notebook in RCloud. The markdown is not output when called remotely.
Please see the following for more notebook.R features and information.
To conduct a global text search in all public RCloud notebooks, simply open up the search panel by clicking on Search on the left sidebar. Here are the results for a search on “markdown.” RCloud searches code, comments, notebook names, assets, everything.
1: Results can be sorted by the number of stars a notebook has, the author of the notebook (User), the notebook’s name, or by the date a notebook was created.
2: Sorts the results in descending (Desc) or ascending (Asc) order.
3: When too many results are returned for any one notebook, RCloud will display a Show me more link that, when clicked, will toggle the rest of the results.
4: Search results are paginated. Click on any page number below the results or use the back or next page to page through the results.
RCloud supports Lucene’s feature-rich query parser syntax for more complex searches. Features include wildcard, fuzzy, and proximity searches, boolean operators, grouping, and much more.
Please see the official query parser syntax documentation for more information.
Various aspects of your RCloud session can be changed here.
This setting toggles the appearance of the default prompt cell that appears at the bottom of the currently loaded notebook.
This controls how RCloud displays dates when viewing notebook versions. When selected, RCloud will display dates and times only when they’re different from the version before it.
Toggles “Cell 1,” “Cell 2,” etc. in the cells panel.
Power users can extend RCloud’s user interface with global and per-user extensions. Although this functionality is outside the scope of this document, more information is available here.
You can enable and disable extensions using the “Enable Extensions” and “Disable Extensions” text boxes. These set the user options addons
and skip-addons
, respectively. On starting the session, any extensions listed in skip-addons
are not loaded.
Enter a list of extensions, comma delimited, and press enter. You will then have to reload the page.
Use the New Notebook Prefix setting to change how RCloud names new notebooks.
Suppose you were working on a project, Foo. You might choose “Foo “ for your new notebook prefix. New notebooks would be named “Foo 1,” “Foo 2,” and so on.
You could also include a folder. RCloud would then place new notebooks within that folder in the notebook tree. For example, you may choose to make “Foo/Notebook “ your new notebook prefix name. RCloud would create new notebooks “Foo/Notebook 1,” “Foo/Notebook 2,” and so on.
Anyone can leave comments about anyone’s notebooks in the Comments panel in the right sidebar, as demonstrated below:
Comments are included in search results.
To submit a comment, simply input your text in the text area and click the comment icon . You can also submit your comment by pressing Ctrl-Enter (Win/Linux) or Cmd-Enter (Mac).
To edit a comment, click on the comment text to make changes. Then click Ctrl- or Cmd-Enter to update the comment.
To delete a comment, hover your mouse over the comment. Click the X next to the comment to delete it.
It’s often difficult to remember arguments to functions and what they mean, so RCloud has an inline help feature. In a new prompt cell, type a question mark immediately followed by an R function name and then press Enter/Return to execute the cell:
If help is available, RCloud will open the Help panel:
Alternatively, you can enter a function name in the text box at the top of the panel and click the help icon .
In the course of working with your notebook, variables are defined and assigned. Often, it is convenient to know the value of a variable without issuing a command to display it. The Workspace panel displays every variable you’ve defined along with its value.
In the case of dataframe variables, a link is displayed, which, when clicked, will open up the Dataframe panel.
Dataframe objects are displayed here after you click a dataframe link in the Workspace panel or use the View(object) command in a cell:
View(a[1:10,])
The session panel displays critical system information when available, such as session timeouts. The panel will automatically open when messages are available.
Click the icon to dismiss a session notification.
RCloud contains preliminary support for the RStudio Shiny web application framework via the rcloud.shiny package. rcloud.shiny emulates a network connection to run Shiny on an RCloud server and client instead of a Shiny server. Basic functionality is supported. Shiny extensions are not yet supported.
Although comprehensive documentation of rcloud.shiny is beyond the scope of this document, the implementation is simple enough to get many users already familiar with Shiny started.
# Include rcloud.shiny library library(rcloud.shiny) # Include all the libraries from ui.R and server.R library(datasets) # The rcloud.shinyApp function is the equivalent of the shinyApp # (http://rmarkdown.rstudio.com/authoring_embedded_shiny.html#inline-applications) # function in shiny library. rcloud.shinyApp( # Pass the ui.R code something as shown below. ui = fluidPage( # Application title headerPanel("Word Cloud"), . . . etc.
To learn more about how to use Shiny in RCloud, please see the rcloud.shiny example notebooks under RCloud Sample Notebooks in the Notebooks panel and the official Shiny documentation.