Access Your Dataset as “”

LabKey Server automatically reads your chosen dataset into a data frame called; using Input Substitution.

A data frame can be visualized as a list with unique row names and columns of consistent lengths. Columns may also be named and their types may differ. You can see the column names for the frame by calling:


Just like any other data.frame, data in a column of can be referenced by the column’s name, preceded by a $:$<column name>

For example:$pulse; provides all the data in the Pulse column of the Physical Exam sample dataset. Note that the examples in this section frequently include column names. If you are using your own data or a different version of LabKey sample data, you may need to retrieve column names and edit the code examples given.

Use Pre-existing R Scripts

To use a pre-existing R script with LabKey data, try the following procedure:

  • Open the R Report Builder. Open the dataset of interest ("Physical Exam" for example) and select > Create Chart.
  • Paste the script into the Source tab.
    • Identify the LabKey data columns that you want to be represented by the script, and load those columns into vectors. The following loads the Systolic Blood Pressure and Diastolic Blood Pressure columns into the vectors x and y:
x <-$diastolicbloodpressure
y <-$systolicbloodpressure

png(filename="${imgout:myscatterplot}", width = 650, height = 480);
plot(x, y, main="Scatterplot Example", xlab="X Axis ", ylab="Y Axis", pch=19)
abline(lm(y~x), col="red") # regression line (y~x)
  • Click the Report tab to see the result:

Find Simple Means

Once you have loaded your data, you can perform statistical analyses using the functions/algorithms in R and its associated packages. For example, calculate the mean Pulse for all participants.

a <- mean($pulse, na.rm= TRUE);

Find Means for Each Participant

The following simple script finds the average values of a variety of physiological measurements for each study participant.

# Get means for each participant over multiple visits;

participant_means <- aggregate(, list(ParticipantID =$participantid), mean, na.rm = TRUE);

We use na.rm as an argument to aggregate in order to calculate means even when some values in a column are NA.

Create Functions in R

This script shows an example of how functions can be created and called in LabKey R scripts. Before you can run this script, the Cairo package must be installed on your server. See Install and Set Up R for instructions.

Note that the second line of this script creates a "data" copy of the input file, but removes all participant records that contain an NA entry. NA entries are common in study datasets and can complicate display results.

data= na.omit(;

chart <- function(data)
plot(data$pulse, data$pulse);

filter <- function(value)
sub <- subset(,$participantid == value);
#print("the number of rows for participant id: ")
#print("is : ")

Cairo(file="${imgout:a}", type="png");
layout(matrix(c(1:4), 2, 2, byrow=TRUE));
strand1 <-[,1];
for (i in strand1)
value <- i

Access Data in Another Dataset

You can access data in another dataset (a dataset not loaded into through the Rlabkey library's selectRows, for example:


mydata <- labkey.selectRows(
folderPath="/home/Demo Study",


Was this content helpful?

Log in or register an account to provide feedback

expand all collapse all