bedarfsanalyse/01-quarto-interactive.qmd

100 lines
1.5 KiB
Plaintext

---
title: "Untitled"
format: html
---
# R: Import Data
```{r warning=FALSE, message=FALSE}
library(tidyverse)
# install.packages("here)
```
```{r}
data <- readr::read_rds(here::here("data", "processed", "survey_with_labels.rds"))
```
```{r include=FALSE}
head(data)
```
## R: Transpose Data for OJS
```{r}
data_ojs <- data %>% transpose()
```
# Exploration
## R: Expose Data to JS
```{r}
ojs_define(data = data_ojs)
ojs_define(varnames = names(data))
ojs_define(qlabels = attributes(data)$variable.labels)
```
# R + OJS: Interaction
## OJS: Dropdown
```{ojs}
viewof varname_selected = Inputs.select(varnames,
{label: "Filter nach:"}
)
```
```{ojs}
viewof filter_val = Inputs.select(varnames,
{label: "Filter nach:"}
)
```
## OJS: Table
```{ojs}
viewof tableData = Inputs.table(
data,
{
sort: varname_selected, required: false
}
)
```
## MAIN: Dynamic ggplot
```{ojs}
//| echo: false
viewof var_x = Inputs.select(varnames,
{label: "X Variable"}
)
```
```{ojs}
//| echo: false
viewof var_y = Inputs.select(varnames,
{label: "Y Variable"}
)
```
```{ojs}
//| echo: false
chart = Plot.plot({
inset: 8,
grid: true,
marks: [
Plot.dot(data,
Plot.group({r: "count", fill: "count"}, {x: var_x, y: var_y})
)
],
color: {
type: "linear",
range: ["steelblue", "orange"] // uses d3.interpolateRgb
},
r: {
range: [0, 20]
},
})
```