100 lines
1.5 KiB
Plaintext
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]
|
|
},
|
|
})
|
|
```
|