The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Type: Package
Title: Read Data from 'LimeSurvey'
Version: 1.2.0
Description: Read data from 'LimeSurvey' (https://www.limesurvey.org/) in a comfortable way. Heavily inspired by 'limer' (https://github.com/cloudyr/limer/), which lacked a few comfort features for me.
License: MIT + file LICENSE
URL: https://gitlab.com/REDS1736/ipanema
Encoding: UTF-8
Imports: base64enc, DBI, dplyr, httr, jsonlite, magrittr, RMySQL
RoxygenNote: 7.3.2
Depends: R (≥ 2.10)
NeedsCompilation: no
Packaged: 2025-05-09 15:59:32 UTC; max
Author: Maximilian Hagspiel [aut, cre, cph]
Maintainer: Maximilian Hagspiel <maxhag@mailbox.org>
Repository: CRAN
Date/Publication: 2025-05-09 16:20:02 UTC

base64_to_df

Description

Convert a base64 representation of a CSV table into a 'data.frame' object.

Usage

base64_to_df(x)

Arguments

x

The base64-encoded CSV string

Value

A 'data.frame' object containing the data from 'x'.


connect_to_limesurvey

Description

Connect to 'LimeSurvey' instance via the RPC and a direct MySQL connection. Store the RPC session key in ‘options(’limesurvey_session_key')'. Store the MySQL connection object in ‘options(’limesurvey_mysql_connection')'. Store the RPC URL in ‘options(’limesurvey_api_url')'.

Usage

connect_to_limesurvey(
  api_url,
  limesurvey_username,
  limesurvey_password,
  mysql_host,
  mysql_port,
  mysql_dbname,
  mysql_table_prefix,
  mysql_username,
  mysql_password
)

Arguments

api_url

URL to the 'LimeSurvey' RPC, e.g. 'http://localhost/index.php/admin/remotecontrol'

limesurvey_username

Username for the 'LimeSurvey' API

limesurvey_password

Password for the 'LimeSurvey' API

mysql_host

Hostname of the MySQL server used by 'LimeSurvey'

mysql_port

Port on which the MySQL server listens for connections

mysql_dbname

Name of the database on the MySQL server which is used by 'LimeSurvey'

mysql_table_prefix

Prefix for all table names, e.g. "lime_"

mysql_username

Username for the MySQL server

mysql_password

Password for the MySQL server

Value

No return value, called for side effects

Examples

# This example assumes a locally hosted `LimeSurvey` instance using a locally
# hosted MySQL server
## Not run: 
connect_to_limesurvey(
  api_url = 'https://localhost/index.php/admin/remotecontrol',
  limesurvey_username = 'admin',
  limesurvey_password = '1234admin',
  mysql_host = '127.0.0.1',
  mysql_port = 3306,
  mysql_dbname = 'limesurvey',
  mysql_table_prefix = '',
  mysql_username = 'lime',
  mysql_password = '1234lime'
)

## End(Not run)


fix_column_data_types

Description

Freshly exported data has all item-data columns as type "character". This function converts these columns to ideal types (e.g. integer). Currently simply converts all multiple-choice columns to integer. Future task: Add conversion to other data types as needed.

Usage

fix_column_data_types(df_in)

Arguments

df_in

The 'data.frame' object to fix.

Value

A 'data.frame' object containing the data from 'df_in' but with fixed column data types.


get_answer_options

Description

Get the answer options to a question with pre-defined answer options (e.g. a multiple choice question).

Usage

get_answer_options(question_code)

Arguments

question_code

Code by which to identify the question. Follows a dot-based naming scheme: <group title>.<subquestion title>.

Value

'data.frame' object with the columns 'code' and 'answer' in which each row represents one answer option where 'code' is the encoded value (as found in datasets exported by 'get_survey_data()' and 'answer' is the answer option text as seen by survey users).

Examples

# This example assumes a locally hosted `LimeSurvey` instance using a locally
# hosted MySQL server.
# On this `LimeSurvey` instance, there is a survey with the ID 123456.
# In this survey, a multiple-choice question identified by the code "bdi.01"
# is used.
# For this question, this example retrieves the possible answer options.
## Not run: 
connect_to_limesurvey(
  api_url = 'https://localhost/index.php/admin/remotecontrol',
  limesurvey_username = 'admin',
  limesurvey_password = '1234admin',
  mysql_host = '127.0.0.1',
  mysql_port = 3306,
  mysql_dbname = 'limesurvey',
  mysql_table_prefix = '',
  mysql_username = 'lime',
  mysql_password = '1234lime'
)

answer_options <- get_answer_options("bdi.01")

## End(Not run)


get_question_text

Description

Get the question text (e.g. "How have you been feeling?") to a question in the dataset.

Usage

get_question_text(question_code)

Arguments

question_code

Code by which to identify the question. Follows a dot-based naming scheme: <group title>.<subquestion title>.

Value

'character' object containing the question text

Examples

# This example assumes a locally hosted `LimeSurvey` instance using a locally
# hosted MySQL server.
# On this `LimeSurvey` instance, there is a survey with the ID 123456.
# In this survey, a multiple-choice question identified by the code "bdi.01"
# is used.
# For this question, this example retrieves the question text which was shown
# to the user when answering the questionnaire.
## Not run: 
connect_to_limesurvey(
  api_url = 'https://localhost/index.php/admin/remotecontrol',
  limesurvey_username = 'admin',
  limesurvey_password = '1234admin',
  mysql_host = '127.0.0.1',
  mysql_port = 3306,
  mysql_dbname = 'limesurvey',
  mysql_table_prefix = '',
  mysql_username = 'lime',
  mysql_password = '1234lime'
)

q_text <- get_question_text("bdi.01")

## End(Not run)


get_sql_varname

Description

Get the internal SQL field name (e.g. "697929X4X21") to a question from a specific survey in the dataset.

Usage

get_sql_varname(question_code, survey_id)

Arguments

question_code

Code by which to identify the question. Follows a dot-based naming scheme: <group title>.<subquestion title>.

survey_id

Survey-ID of the survey from which to select the question.

Value

'character' object containing the field name

Examples

# This example assumes a locally hosted `LimeSurvey` instance using a locally
# hosted MySQL server.
# On this `LimeSurvey` instance, there is a survey with the ID 123456.
# In this survey, a multiple-choice question identified by the code "bdi.01"
# is used.
# For this question, this example retrieves name of the SQL table field in
# which `LimeSurvey` internally stores the responses to this question.
## Not run: 
connect_to_limesurvey(
  api_url = 'https://localhost/index.php/admin/remotecontrol',
  limesurvey_username = 'admin',
  limesurvey_password = '1234admin',
  mysql_host = '127.0.0.1',
  mysql_port = 3306,
  mysql_dbname = 'limesurvey',
  mysql_table_prefix = '',
  mysql_username = 'lime',
  mysql_password = '1234lime'
)

q_varname <- get_sql_varname("bdi.01", 123456)

## End(Not run)


get_survey_data

Description

Get collected data from a specific survey on the connected 'LimeSurvey' instance. Includes complete and incomplete cases! Returns 'NULL' if no data has been collected in this survey.

Usage

get_survey_data(survey_id, completion_status = "all")

Arguments

survey_id

ID of the survey from which the collected data shall be extracted. 6-digit integer.

completion_status

'complete' = Return only complete cases; 'incomplete' = Return only incomplete cases; 'all' = Return both.

Value

A 'data.frame' object containing the survey data. Column names follow a dot-based naming scheme: <group title>.<subquestion title>. 'NULL' if no data has been collected.

Examples

# This example assumes a locally hosted `LimeSurvey` instance using a locally
# hosted MySQL server.
# On this `LimeSurvey` instance, there is a survey with the ID 123456.
## Not run: 
connect_to_limesurvey(
  api_url = 'https://localhost/index.php/admin/remotecontrol',
  limesurvey_username = 'admin',
  limesurvey_password = '1234admin',
  mysql_host = '127.0.0.1',
  mysql_port = 3306,
  mysql_dbname = 'limesurvey',
  mysql_table_prefix = '',
  mysql_username = 'lime',
  mysql_password = '1234lime'
)

df_data <- get_survey_data(123456)

## End(Not run)


get_survey_id

Description

Get numerical LimeSurvey ID of the survey with the given title.

Usage

get_survey_id(survey_title)

Arguments

survey_title

TItle of the survey. String.

Value

An integer Survey ID which can be used as a parameter in 'get_survey_data()'

Examples

# This example assumes a locally hosted `LimeSurvey` instance using a locally
# hosted MySQL server.
# On this `LimeSurvey` instance, there is a survey with the title 'mysurvey'.
## Not run: 
connect_to_limesurvey(
  api_url = 'https://localhost/index.php/admin/remotecontrol',
  limesurvey_username = 'admin',
  limesurvey_password = '1234admin',
  mysql_host = '127.0.0.1',
  mysql_port = 3306,
  mysql_dbname = 'limesurvey',
  mysql_table_prefix = '',
  mysql_username = 'lime',
  mysql_password = '1234lime'
)

survey_id <- get_survey_id('mysurvey')
df_data <- get_survey_data(survey_id)

## End(Not run)


limesurvey_api_call

Description

Perform a call to the 'LimeSurvey' RPC API.

Usage

limesurvey_api_call(method, params = list(), ...)

Arguments

method

Name of the API method to call. A complete list of methods can be found here: https://api.limesurvey.org/classes/remotecontrol_handle.html

params

Parameters to pass to the API

...

Additional parameters passed from above

Value

A list containing the de-serialized response.


wipe_survey_data

Description

Delete all data collected by this survey.

Usage

wipe_survey_data(survey_id)

Arguments

survey_id

ID of the survey from which the collected data shall be deleted. 6-digit integer.

Value

Nothing. Function is called for side effects on SQL table.

Examples

# This example assumes a locally hosted `LimeSurvey` instance using a locally
# hosted MySQL server.
# On this `LimeSurvey` instance, there is a survey with the ID 123456.
## Not run: 
connect_to_limesurvey(
  api_url = 'https://localhost/index.php/admin/remotecontrol',
  limesurvey_username = 'admin',
  limesurvey_password = '1234admin',
  mysql_host = '127.0.0.1',
  mysql_port = 3306,
  mysql_dbname = 'limesurvey',
  mysql_table_prefix = '',
  mysql_username = 'lime',
  mysql_password = '1234lime'
)

wipe_survey_data(123456)

## End(Not run)

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.