This function creates various types of survey questions for use in a Surveydown survey.
Usage
sd_question(
type,
id,
label,
cols = "80",
direction = "horizontal",
status = "default",
width = "100%",
height = NULL,
selected = NULL,
label_select = "Choose an option...",
grid = TRUE,
individual = TRUE,
justified = FALSE,
force_edges = TRUE,
option = NULL,
placeholder = NULL,
resize = NULL,
row = NULL
)
Arguments
- type
Specifies the type of question. Possible values are "select", "mc", "mc_multiple", "mc_buttons", "mc_multiple_buttons", "text", "textarea", "numeric", "slider", "date", "daterange", and "matrix".
- id
A unique identifier for the question, which will be used as the variable name in the resulting survey data.
- label
Character string. The label for the UI element, which can be formatted with markdown.
- cols
Integer. Number of columns for the textarea input. Defaults to 80.
- direction
Character string. The direction for button groups ("horizontal" or "vertical"). Defaults to "horizontal".
- status
Character string. The status for button groups. Defaults to "default".
- width
Character string. The width of the UI element. Defaults to "100%".
- height
Character string. The height of the textarea input. Defaults to "100px".
- selected
Value. The selected value(s) for certain input elements.
- label_select
Character string. The label for the select input. Defaults to "Choose an option...".
- grid
Logical. Whether to show a grid for slider input. Defaults to TRUE.
- individual
Logical. Whether buttons in a group should be individually styled. Defaults to TRUE.
- justified
Logical. Whether buttons in a group should fill the width of the parent div. Defaults to FALSE.
- force_edges
Logical. Whether to force edges for slider input. Defaults to TRUE.
- option
List. Options for the select, radio, checkbox, and slider inputs.
- placeholder
Character string. Placeholder text for text and textarea inputs.
- resize
Character string. Resize option for textarea input. Defaults to NULL.
- row
List. Used for "matrix" type questions. Contains the row labels and their corresponding IDs.
Details
The function supports various question types:
"select": A dropdown selection
"mc": Multiple choice (single selection)
"mc_multiple": Multiple choice (multiple selections allowed)
"mc_buttons": Multiple choice with button-style options (single selection)
"mc_multiple_buttons": Multiple choice with button-style options (multiple selections allowed)
"text": Single-line text input
"textarea": Multi-line text input
"numeric": Numeric input
"slider": Slider input
"date": Date input
"daterange": Date range input
"matrix": Matrix-style question with rows and columns
For "matrix" type questions, use the row
parameter to define the rows of
the matrix. Each element in the row
list should have a name (used as the
row ID) and a value (used as the row label).
Examples
if (interactive()) {
library(surveydown)
# Get path to example survey file
survey_path <- system.file("examples", "basic_survey.qmd",
package = "surveydown")
# Copy to a temporary directory
temp_dir <- tempdir()
file.copy(survey_path, file.path(temp_dir, "survey.qmd"))
orig_dir <- getwd()
setwd(temp_dir)
# Define a minimal server
server <- function(input, output, session) {
sd_server()
}
# Run the app
shiny::shinyApp(ui = sd_ui(), server = server)
# Clean up
setwd(orig_dir)
}