# Заголовок первого уровня
## Второго
### Третьего
*Курсив*, или _курсив_
**Жирный**, __Жирный__
~~Зачеркнутый~~
![подпись к изображению](изображение.jpg)
[текст ссылки](http://www.ссылка.com)
Просто текст[^1]
[^1]: Текст сноски
- ненумерованный список
- ненумерованный список
1. нумерованный список
2. нумерованный список
“Чанки” кода можно настраивать, что из кода и выдачи показывать
```{r}
код R
```
Можно вставлять прямо в текст 'r myvalues'
---
title: "Лекция 5 - Визуализация и автоматизированные отчеты"
date: "8 марта 2021 г."
output: # опции конвертирования кода
html_document: # конвертировать в html
toc: yes # table of contents - добавить?
toc_float: yes # прокручивать содержание?
code_folding: hide # свернуть исходный код в чанках?
---
default
на название темы) html_document:
theme:
version: 4
bootswatch: default
html_document:
, следующей строкой toc: true
, можете также добавить toc_float: true
, чтобы оглавление всегда отображалось сбоку.Варианты:
results='asis'
.Например, пакет kableExtra
помогает настроить стиль таблицы:
library(knitr)
library(kableExtra)
kbl.tbl <- kable(mtcars[1:10,],
format = "html"
)
kable_styling(kbl.tbl,
bootstrap_options = c("hover", "striped", "condensed")
)
mpg | cyl | disp | hp | drat | wt | qsec | vs | am | gear | carb | |
---|---|---|---|---|---|---|---|---|---|---|---|
Mazda RX4 | 21.0 | 6 | 160.0 | 110 | 3.90 | 2.620 | 16.46 | 0 | 1 | 4 | 4 |
Mazda RX4 Wag | 21.0 | 6 | 160.0 | 110 | 3.90 | 2.875 | 17.02 | 0 | 1 | 4 | 4 |
Datsun 710 | 22.8 | 4 | 108.0 | 93 | 3.85 | 2.320 | 18.61 | 1 | 1 | 4 | 1 |
Hornet 4 Drive | 21.4 | 6 | 258.0 | 110 | 3.08 | 3.215 | 19.44 | 1 | 0 | 3 | 1 |
Hornet Sportabout | 18.7 | 8 | 360.0 | 175 | 3.15 | 3.440 | 17.02 | 0 | 0 | 3 | 2 |
Valiant | 18.1 | 6 | 225.0 | 105 | 2.76 | 3.460 | 20.22 | 1 | 0 | 3 | 1 |
Duster 360 | 14.3 | 8 | 360.0 | 245 | 3.21 | 3.570 | 15.84 | 0 | 0 | 3 | 4 |
Merc 240D | 24.4 | 4 | 146.7 | 62 | 3.69 | 3.190 | 20.00 | 1 | 0 | 4 | 2 |
Merc 230 | 22.8 | 4 | 140.8 | 95 | 3.92 | 3.150 | 22.90 | 1 | 0 | 4 | 2 |
Merc 280 | 19.2 | 6 | 167.6 | 123 | 3.92 | 3.440 | 18.30 | 1 | 0 | 4 | 4 |
model1 <- lm(mpg ~ cyl , mtcars)
model2 <- lm(mpg ~ cyl + disp , mtcars)
model3 <- lm(mpg ~ cyl + hp, mtcars)
library("texreg")
htmlreg(list(model1, model2, model3))
Model 1 | Model 2 | Model 3 | |
---|---|---|---|
(Intercept) | 37.88*** | 34.66*** | 36.91*** |
(2.07) | (2.55) | (2.19) | |
cyl | -2.88*** | -1.59* | -2.26*** |
(0.32) | (0.71) | (0.58) | |
disp | -0.02 | ||
(0.01) | |||
hp | -0.02 | ||
(0.02) | |||
R2 | 0.73 | 0.76 | 0.74 |
Adj. R2 | 0.72 | 0.74 | 0.72 |
Num. obs. | 32 | 32 | 32 |
p < 0.001; p < 0.01; p < 0.05 |
semTable()
:library(lavaan)
path1 <- sem("cyl ~ disp;
disp ~ hp",
data = mtcars)
library(semTable)
semTable(path1, type = "html")
Model | ||||
Estimate | Std. Err. | z | p | |
Regression Slopes | ||||
cyl | ||||
disp | 0.01 | 0.00 | 11.82 | .000 |
disp | ||||
hp | 1.43 | 0.20 | 7.31 | .000 |
Residual Variances | ||||
cyl | 0.58 | 0.14 | 4.00 | .000 |
disp | 5571.37 | 1392.84 | 4.00 | .000 |
hp | 4553.96+ | |||
Fit Indices | ||||
χ2 | 7.26(1) | .007 | ||
CFI | 0.93 | |||
TLI | 0.79 | |||
RMSEA | 0.44 | |||
+Fixed parameter |
Пример: dashboard_example.html
Руководство https://bookdown.org/yihui/rmarkdown/dashboards.html и галерея с примерами https://rmarkdown.rstudio.com/flexdashboard/index.html
flexdashboard
🧶Knit
.Соберите все графики об употреблении алкоголя в Европе и отдельно в Австрии в автоматический Rmarkdown.
Дополните отчет двумя частотными таблицами, подсчитав частоты переменных “частота употребления” alcfreq
и “частота чрезмерного употребления” alcbnge
по странам.
Добавьте одно предложение описания кластеров с цифрами, напрямую запрашиваемыми из R через вставку В среднем в Европе выпивают 'r mean(ess$alcohol)' граммов алкоголя в неделю.
Расставьте заголовки разного уровня в соответствии с содержанием графиков, чтобы отчет был понятно организован.
Скройте исходный код, прописав в каждом из чанков echo = FALSE
и уберите предупреждающие соообщения message=FALSE
.
Скомпилируйте отчет в формате html.
Поместите этот отчет в шаблон дэшборда и скомпилируйте.
Попробуем сделать визуализацию факторных нагрузок в зависимости от метода вращения.
selectInput(inputId = "rot.method",
label = "Rotation method",
choices = c("none", "Varimax", "geominQ", "infomaxT", "oblimin"),
selected = "none"
)
Все значения элементов пользовательского интерфейса доступны в серверной части в обхъектах типа input$XXX, где ХХХ - это их айди.
Добавьте код, считывающий и подготавливающий данные для факторного анализа.
Внутри функции renderPlot()
напишите код, создающий график факторных нагрузок первых двух факторов. Вместо метода вращения и количества факторов укажите соответственно input$rot.metod
и input$n.factors
(или те айди, которые вы указали в UI).
Пропишите в самом начале файла server все библиотеки, которые потребуются для исполнения кода (это будут точно ggplot2
, shiny
, GPArotation
).
Попробуйте запустить приложение. Посмотрите на ошибки, если они появились и попробуйте исправить.
Должно получиться что-то вроде такого: http://apps.maksimrudnev.com/rotation/
Три блока вопросов:
базовый R
dat$newvar <- recode(dat$oldvar, "1==2, 2==1, else==NA")
,структурные уравнения
age
на happy
, последовательно опосредованного health
и hedonism
;gender
так, чтобы она влияла на первый фактор, какими статистиками согласия можно будет сравнить исходную модель с получившейся?графики
domicil
) и назовите ось х “Возраст”,