An R package to get data from Coletum.
To be able to use this package, first of all, you need access your Coletum’s account [https://coletum.com] from your browser to generate your authenticated token in Web service page.
If you don’t have an account, SIGN UP NOW.
Install this package from CRAN:
install.packages("RColetum")
Or install the development version from GitHub using the ‘devtools’ package:
install.packages("devtools")
devtools::install_github("geo-sapiens/RColetum")
In this version of the package, there are four main functions available, those allow you to get your data from Coletum:
GetForms lists all forms in the account.myForms <- GetForms("YOUR_TOKEN_HERE")
GetForm retrieves the metadata and complete field
structure of a specific form (labels, types, options, conditional rules,
etc.).myForm <- GetForm(token = "YOUR_TOKEN_HERE", idForm = FORM_ID)
GetAnswers this function gets the answers from a
specific form. The data structure returned depends of the form
structure. When the form has no field with cardinality greater than 1,
the structure is a data frame. When the form has one or more fields with
cardinality greater then one, the structure is a list of data
frames.myAnswers <- GetAnswers(token = "YOUR_TOKEN_HERE", idForm = FORM_ID)
FlattenAnswers joins all data frames from
GetAnswers into a single flat data frame. Note: this causes
row duplication for submissions with repeating groups.myFlat <- GetAnswers(token = "YOUR_TOKEN_HERE", idForm = FORM_ID) |>
FlattenAnswers()
install.packages("devtools")
devtools::install_github("geo-sapiens/RColetum")
####@> Loading RColetum package
library(RColetum)
####@> Creating a variable to store my Coletum API Token
####@> This variable will be used in all bellow methods
myToken <- "cizio7xeohwgc8k4g4koo008kkoocwg"
####@> Getting my forms
myForms <- GetForms(myToken)
####@> Getting form structure using form id
starWarsFormStructure <- GetForm(token = myToken, idForm = 5713)
####@> Getting form structure using form name
starWarsFormStructure <- GetForm(token = myToken,
nameForm = "RColetum Test - Star Wars")
####@> Getting answers for a form using form id
starWarsFormAnswer <- GetAnswers(token = myToken,
idForm = 5713)
####@> Getting answers for a form using form name
####@> In this case we have X + 1 dataframes, where X is number of
####@> N fields (fields with cardinality > 1)
starWarsFormAnswer <- GetAnswers(token = myToken,
nameForm = "RColetum Test - Star Wars")
####@> Flatten all data frames into one (beware of row duplication
####@> when repeating groups are present)
starWarsFormAnswerSingleDataframe <- FlattenAnswers(myAnswers)
####@> Pipe-friendly alternative
starWarsFormAnswerSingleDataframe <- GetAnswers(token = myToken, idForm = FORM_ID) |> FlattenAnswers()
####@> LET'S HAVE SOME FUN AND SHOW A CHART WITH BMI (BODY MASS INDEX)
####@> OF EACH STAR WARS CHARACTERS
library(ggplot2)
myChart <- ggplot(data = starWarsFormAnswer[[1]],
mapping =
aes(x = name66298,
y = (mass66300) / (height66299/100)^2 )) +
geom_bar(stat = "identity",
fill = "black",
colour = "green",
alpha = 0.8) +
geom_label(mapping = aes(label = (mass66300) / (height66299/100)^2)) +
labs(x = "Character",
y = "BMI") +
theme_bw(base_size = 14)
myChart
We use SemVer for versioning. For the versions available, see the tags on this repository.
Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.