/rtypeform

An R interface to the 'typeform' API.

Primary LanguageR

API to typeform data sets

Build Status Downloads CRAN_Status_Badge codecov.io

Typeform is a company that specialises in online form building. This R package allows users to download their form results through the exposed API.

Installation

The package can be installed from CRAN

install.packages("rtypeform")

The package can then be loaded in the usual way

library("rtypeform")

Using the package

To use this package, you will need a data API key. With this key in position, you can then list your available forms

api = "XXXXX"
typeforms = get_typeforms(api)
typeforms$content

If you don't pass your api key as an argument, it will attempt to read the variable typeform_api from your .Renviron file, via Sys.getenv("typeform_api"). If this variable is set correctly, then you can omit the api argument

typeforms = get_typeforms()

In all function calls below, the api argument can be ommitted if the environment variable is set (see Efficient R programming Chapter 2 for more details).

You can download data from a particular typeform via

# Most recent typeform
uid = typeforms$content$uid[1]
## uid can be obtained from the typeforms data set above
q = get_questionnaire(uid, api)

The object q contains a few useful components,

q$questions
q$completed
q$uncompleted

There are a number of options for downloading the data. For example

## Only completed forms
get_questionnaire(uid, api, completed = TRUE)

## Results since the 1st Jan
get_questionnaire(uid, api, since = as.Date("2016-01-01"))

See the ?get_questionnaire() help page for other options.

Example: Multiple Filters / Order

Imagine we only want to fetch the last 10 completed responses.

  • We only want completed results, so we add the parameter completed = TRUE.
  • The results need to be ordered by newest results first, so we add the parameter order_by = "date_submit_desc"
  • We only want a maximum of 10 results, so we add the parameter limit = 10

This gives the function call

get_questionnaire(uid, 
                  api, 
                  completed = TRUE, 
                  order_by = "date_submit_desc", 
                  limit = 10)

Other information

  • If you have any suggestions or find bugs, please use the github issue tracker.
  • Feel free to submit pull requests.

Development of this package was supported by Jumping Rivers