Page 1

Row 1

Row 2

Page 2

---
title: "Assignment_3"
output: 
  flexdashboard::flex_dashboard:
    orientation: rows
    vertical_layout: scroll
    source_code: embed
---
```{r setup, include=FALSE}

library(flexdashboard)
library(tidymodels)
library(vip)
library(tidyverse)
library(plotly)
library(readxl)
library(broom)
library(car)
library(ggfortify)
library(GGally)
library(performance)
library(corrr)
library(caret)
library(bslib)
library(cowplot)
library(reshape2)
library(htmltools)
library(DT)
```

```{r Data, include=FALSE}
games <- read_excel("C:/Users/aland/OneDrive/Desktop/HGEN612/Projects/Assignment_3/Data-Games/board_games_clean.xlsx")

games_data <- games %>% 
  as_tibble() %>%
  mutate(Game_ID = row_number(),
         Category_1 = factor (Category_1),
         Category_2 = factor (Category_2),
         Category_3 = factor (Category_3),
         Mechanic_1 = factor (Mechanic_1),
         Mechanic_2 = factor (Mechanic_2),
         Mechanic_3 = factor (Mechanic_3),
         Publisher_1 = factor (Publisher_1),
         Publisher_2 = factor (Publisher_2),
         Publisher_3 = factor (Publisher_3),
         Expansion = factor(games$Expansion),
         Average_rating = as.numeric(games$Average_rating)) %>% 
  slice(1:1000)

games_cor <- games_data %>% 
  as_tibble() %>% 
  select(where(is.numeric)) %>% 
  correlate() 

games_cor %>% 
  rearrange() %>% 
  fashion() %>% 
  knitr::kable()

```

```{r Data Splitting, include=FALSE}
set.seed(123)
splits <- initial_split(games_data, strata = Average_rating)

games_other <- training(splits)
games_test  <- testing(splits)

games_boot <- bootstraps(games_test)

set.seed(234)
prop.validation <- .20

val_set <- validation_split(games_other, 
                            strata = Average_rating, 
                            prop   = (1-prop.validation))

lambda_grid <- grid_regular(penalty(), levels = 50)

```

```{r Model-glmnet, include=FALSE}
log_mod <- 
  logistic_reg(mixture = 1, penalty = tune()) %>% 
  set_engine("glmnet")

```

```{r Cat_Recipe and Workflow, include=FALSE}

cat_recipe <- 
  recipe(Average_rating ~ ., data = games_other) %>%
  update_role(NAME, new_role = "ID") %>%
  step_unknown(Category_2, new_level = "NA") %>% 
  step_unknown(Category_3, new_level = "NA") %>% 
  step_unknown(Mechanic_2, new_level = "NA") %>% 
  step_unknown(Mechanic_3, new_level = "NA") %>% 
  step_unknown(Publisher_2, new_level = "NA") %>% 
  step_unknown(Publisher_3, new_level = "NA") %>% 
  step_zv(all_predictors()) %>% 
  step_normalize(all_numeric_predictors())

cat_workflow <- 
  workflow() %>% 
  add_model(log_mod) %>% 
  add_recipe(cat_recipe)

```


```{r Model-lm, include=FALSE}

lm_mod <- 
  linear_reg() %>% 
  set_engine("lm")

```



```{r Num_Recipe and Workflow, include=FALSE}
num_recipe <- 
  recipe(Average_rating ~ ., data = games_other) %>%
  update_role(NAME, new_role = "ID") %>%
  step_unknown(all_nominal_predictors()) %>%
  step_dummy(all_nominal_predictors()) %>% 
  step_zv(all_predictors()) %>% 
  step_normalize(all_numeric_predictors())

num_workflow <- 
  workflow() %>% 
  add_model(lm_mod) %>% 
  add_recipe(num_recipe)

games_fit <-
  fit(num_workflow , data = games_data)

```


Page 1
=====================================================

Row 1
-----

```{r}
games %>% 
  slice(1:100) %>%
  datatable(options = list(searching = FALSE,
                           pageLength = 50,
                           lengthMenu = c(50, 100),
                           scrollY = '300px',
                           scrollX = '300px'),
            style = "default")

```

Row 2
-------------

```{r}
games_data %>%
  ggplot(aes(Average_rating)) +
  geom_histogram(bins = 30)

```


```{r Linear Evaluation}

games_fit %>% 
  augment(new_data = games_data) %>% 
  ggplot(aes(x = .pred, y = Average_rating)) +
  geom_point()

```


Page 2
=====================================================


```{r}

```