## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>",
  fig.path = "figures/intro-"
)
#  ,out.width = "60%"

## ----inst_cran,  eval = FALSE-------------------------------------------------
#  install.packages("spca")

## ----inst_gib, , eval = FALSE-------------------------------------------------
#  remotes::install_github("merolagio/spca")

## ----load_data, echo = TRUE, message = FALSE, warning = FALSE-----------------
library(spca)
data(holzinger)
dim(holzinger)
holzinger_scales

## ----pca_checks, message = FALSE, warning = FALSE, fig.show = "hold", out.width = "47%", fig.width = 4, fig.height = 4----
ho_pca = pca(holzinger, screeplot =  TRUE, qq_plot = TRUE)
summary(ho_pca,cols = 10)

## ----run_spca, message = FALSE, warning = FALSE-------------------------------
myspca = spca(holzinger, n_comps = 4)

## ----methods, message = TRUE, warning = FALSE, fig.height=5, fig.width = 5----
myspca # print

summary(myspca, cor_with_pc = TRUE)

plot(myspca, plot_type = "bar")

#sPCs correlation
round(myspca$spc_cor, 2)


## ----circular, message = FALSE, warning = FALSE, fig.width = 5, fig.height = 3----
plot(myspca, plot_type = "c") # "c" for "circular"

## ----heatmap, message = FALSE, warning = FALSE, fig.width = 5, fig.height = 4----
plot(myspca, plot_type = "h", controls = list(legend_position = "b")) # "h" is enough to call "heatmap" type and "b" to indicate "bottom".

## ----groups, message = FALSE, warning = FALSE, fig.width = 5, fig.height = 4----
plot(myspca, plot_type = "bars", variable_groups = holzinger_scales, controls = list(legend_position = "right")) 

aggregate_by_group(myspca,groups = holzinger_scales)

## ----spca90, message = FALSE, warning = FALSE, fig.width = 5, fig.height = 5----
myspca90 = spca(holzinger, n_comps = 4, alpha = 0.9)

compare_spca(obj_list = list(myspca, myspca90), 
             methods_names = c("alpha = 95", "alpha = 90"))

