This function creates various types of survey questions for use in a Surveydown survey.
sd_question(
type,
id,
label,
cols = "80",
direction = "horizontal",
status = "default",
width = "100%",
height = "100px",
selected = NULL,
label_select = "Choose an option...",
grid = TRUE,
individual = TRUE,
justified = FALSE,
force_edges = TRUE,
option = NULL,
placeholder = NULL,
resize = NULL,
row = NULL
)
A 'shiny' UI element wrapped in a div with a data attribute for question ID.
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".
A unique identifier for the question, which will be used as the variable name in the resulting survey data.
Character string. The label for the UI element, which can be formatted with markdown.
Integer. Number of columns for the textarea input. Defaults to 80.
Character string. The direction for button groups ("horizontal" or "vertical"). Defaults to "horizontal".
Character string. The status for button groups. Defaults to "default".
Character string. The width of the UI element. Defaults to "100%".
Character string. The height of the textarea input. Defaults to "100px".
Value. The selected value(s) for certain input elements.
Character string. The label for the select input. Defaults to "Choose an option...".
Logical. Whether to show a grid for slider input. Defaults to TRUE.
Logical. Whether buttons in a group should be individually styled. Defaults to TRUE.
Logical. Whether buttons in a group should fill the width of the parent div. Defaults to FALSE.
Logical. Whether to force edges for slider input. Defaults to TRUE.
List. Options for the select, radio, checkbox, and slider inputs.
Character string. Placeholder text for text and textarea inputs.
Character string. Resize option for textarea input. Defaults to NULL.
List. Used for "matrix" type questions. Contains the row labels and their corresponding IDs.
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).
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)
}
Run the code above in your browser using DataLab