├── .github ├── .gitignore └── workflows │ └── pkgdown.yaml ├── vignettes ├── .gitignore ├── .DS_Store └── vignette_D_asca.Rmd ├── .DS_Store ├── R ├── .DS_Store ├── complex.R ├── RcppExports.R ├── direct_export.R ├── lplsData.R ├── crossprodQ.R └── multiblock-package.R ├── data ├── wine.rda ├── candies.rda ├── mobile.rda ├── potato.rda └── simulated.rda ├── inst ├── .DS_Store └── extdata │ ├── meta_data.csv │ ├── genes.dat │ └── proteins.csv ├── man ├── .DS_Store ├── figures │ ├── Wiley.png │ ├── wine.png │ ├── mobile.png │ ├── LPLSsmall.png │ └── simulated.png ├── mcolors.Rd ├── explvar.Rd ├── candies.Rd ├── dummycode.Rd ├── complex.Rd ├── compnames.Rd ├── wine.Rd ├── unique_combos.Rd ├── mobile.Rd ├── simulated.Rd ├── block.data.frame.Rd ├── extended.model.frame.Rd ├── basic.Rd ├── lplsData.Rd ├── gsvd.Rd ├── reexports.Rd ├── supervised.Rd ├── cca.Rd ├── jive.Rd ├── hogsvd.Rd ├── ifa.Rd ├── gpa.Rd ├── DISCOsca.Rd ├── disco.Rd ├── potato.Rd ├── pca.Rd ├── statis.Rd ├── hpca.Rd ├── multiblock_results.Rd ├── unsupervised.Rd ├── mcoa.Rd ├── mfa.Rd ├── sca.Rd ├── mbrda.Rd ├── maage.Rd ├── gca.Rd ├── rosa_plots.Rd └── pcagca.Rd ├── src ├── crossprods.o ├── RcppExports.o ├── multiblock.dll ├── multiblock.so ├── Makevars ├── Makevars.win └── crossprods.cpp ├── backgr ├── LimmPCA.pdf ├── potato.rda ├── RamanPUFA.rda ├── halvdikotom.rda └── supervised_results.R ├── docs ├── reference │ ├── gca-1.png │ ├── gpa-1.png │ ├── sca-1.png │ ├── asca-1.png │ ├── asca-2.png │ ├── asca-3.png │ ├── disco-1.png │ ├── hpca-1.png │ ├── maage-1.png │ ├── maage-2.png │ ├── mbpls-1.png │ ├── mbpls-2.png │ ├── mbrda-1.png │ ├── mcoa-1.png │ ├── popls-1.png │ ├── sopls-1.png │ ├── Rplot001.png │ ├── Rplot002.png │ ├── Rplot003.png │ ├── Rplot004.png │ ├── Rplot005.png │ ├── Rplot006.png │ ├── Rplot007.png │ ├── Rplot008.png │ ├── Rplot009.png │ ├── hogsvd-1.png │ ├── pcagca-1.png │ ├── smbpls-1.png │ ├── smbpls-2.png │ ├── smbpls-3.png │ ├── smbpls-4.png │ ├── statis-1.png │ ├── figures │ │ ├── wine.png │ │ ├── Wiley.png │ │ ├── LPLSsmall.png │ │ ├── simulated.png │ │ └── LPLS_small.png │ ├── preprocess-1.png │ ├── rosa_plots-1.png │ ├── rosa_plots-2.png │ ├── rosa_plots-3.png │ ├── sopls_plot-1.png │ ├── sopls_plot-2.png │ ├── sopls_plot-3.png │ ├── sopls_plot-4.png │ ├── sopls_plot-5.png │ ├── sopls_plot-6.png │ ├── supervised-1.png │ ├── predict.mbpls-1.png │ ├── rosa_plotting-1.png │ ├── rosa_plotting-2.png │ ├── rosa_plotting-3.png │ ├── sopls_plots-1.png │ ├── sopls_plots-2.png │ ├── sopls_plots-3.png │ ├── sopls_plots-4.png │ ├── sopls_plots-5.png │ ├── sopls_plots-6.png │ ├── sopls_plots-7.png │ ├── sopls_plots-8.png │ ├── sopls_plots-9.png │ ├── sopls_results-1.png │ ├── sopls_results-2.png │ ├── unsupervised-1.png │ ├── multiblock_object-1.png │ ├── multiblock_plots-1.png │ ├── multiblock_plots-2.png │ ├── multiblock_plots-3.png │ ├── multiblock_plots-4.png │ ├── multiblock_plots-5.png │ ├── R2.html │ ├── R2.mbpls.html │ ├── maageSeq.html │ ├── pcr.html │ ├── sopls_pm.html │ ├── MSEP.html │ ├── MSEP.mbpls.html │ ├── RMSEP.html │ ├── RMSEP.mbpls.html │ ├── asca.html │ ├── asca_fit.html │ ├── coefplot.html │ ├── loadings.html │ ├── plsr.html │ ├── predplot.html │ ├── print.SO_TDI.html │ ├── scores.html │ ├── timeplot.html │ ├── cvsegments.html │ ├── image.rosa.html │ ├── loadingplot.html │ ├── lplsCV.html │ ├── mvrValstats.html │ ├── mvrValstats.mbpls.html │ ├── pcp.html │ ├── scoreplot.html │ ├── sopls_pm_multiple.html │ ├── R2.sopls.html │ ├── barplot.rosa.html │ ├── biplot.sopls.html │ ├── block.preprocess.html │ ├── blockexpl.html │ ├── classify.html │ ├── coef.rosa.html │ ├── coef.sopls.html │ ├── corrplot.sopls.html │ ├── cvanova.html │ ├── loading.weights.html │ ├── loadingplot.asca.html │ ├── loadings.sopls.html │ ├── pcp.sopls.html │ ├── permutationplot.html │ ├── plot.lpls.html │ ├── predict.lpls.html │ ├── predict.rosa.html │ ├── print.SO_TDI_multiple.html │ ├── print.asca.html │ ├── print.rosa.html │ ├── projections.html │ ├── scoreplot.asca.html │ ├── scores.asca.html │ ├── scores.rosa.html │ ├── scores.sopls.html │ ├── summary.asca.html │ ├── summary.rosa.html │ ├── validationplot.html │ ├── RMSEP.sopls.html │ ├── classify.sopls.html │ ├── corrplot.html │ ├── cvanova.default.html │ ├── cvanova.sopls.html │ ├── loadingplot.sopls.html │ ├── loadings.asca.html │ ├── loadings.rosa.html │ ├── multiblock-package.html │ ├── pcp.default.html │ ├── plot.cvanova.html │ ├── predict.sopls.html │ ├── print.cvanova.html │ ├── print.rosaexpl.html │ ├── print.sopls.html │ ├── projections.asca.html │ ├── residuals.sopls.html │ ├── rosa.classify.html │ ├── scoreplot.sopls.html │ ├── summary.cvanova.html │ ├── summary.sopls.html │ ├── corrplot.mvr.html │ ├── print.summary.asca.html │ ├── biplot.multiblock.html │ ├── corrplot.default.html │ ├── corrplot.multiblock.html │ ├── loadingweightplot.html │ ├── loadingplot.multiblock.html │ ├── loadings.multiblock.html │ ├── print.multiblock.html │ ├── scoreplot.multiblock.html │ ├── scores.multiblock.html │ └── summary.multiblock.html ├── deps │ ├── font-awesome-6.4.2 │ │ └── webfonts │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-solid-900.woff2 │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.woff2 │ │ │ ├── fa-v4compatibility.ttf │ │ │ └── fa-v4compatibility.woff2 │ ├── font-awesome-6.5.2 │ │ └── webfonts │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-solid-900.woff2 │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.woff2 │ │ │ ├── fa-v4compatibility.ttf │ │ │ └── fa-v4compatibility.woff2 │ ├── headroom-0.11.0 │ │ └── jQuery.headroom.min.js │ ├── data-deps.txt │ └── bootstrap-toc-1.0.1 │ │ └── bootstrap-toc.min.js ├── articles │ ├── vignette_C_asca_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-3-1.png │ │ │ ├── unnamed-chunk-4-1.png │ │ │ └── unnamed-chunk-5-1.png │ │ └── header-attrs-2.6 │ │ │ └── header-attrs.js │ ├── vignette_D_asca_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-3-1.png │ │ │ ├── unnamed-chunk-4-1.png │ │ │ └── unnamed-chunk-5-1.png │ │ ├── header-attrs-2.6 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.8 │ │ │ └── header-attrs.js │ ├── vignette_asca_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-3-1.png │ │ │ ├── unnamed-chunk-4-1.png │ │ │ └── unnamed-chunk-5-1.png │ │ └── header-attrs-2.6 │ │ │ └── header-attrs.js │ ├── vignette_basic_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-5-1.png │ │ │ └── unnamed-chunk-6-1.png │ │ └── header-attrs-2.6 │ │ │ └── header-attrs.js │ ├── vignette_A_basic_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-5-1.png │ │ │ └── unnamed-chunk-6-1.png │ │ └── header-attrs-2.6 │ │ │ └── header-attrs.js │ ├── vignette_B_basic_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-5-1.png │ │ │ └── unnamed-chunk-6-1.png │ │ ├── header-attrs-2.6 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.8 │ │ │ └── header-attrs.js │ ├── vignette_complex_files │ │ ├── figure-html │ │ │ └── unnamed-chunk-3-1.png │ │ └── header-attrs-2.6 │ │ │ └── header-attrs.js │ ├── vignette_E_complex_files │ │ ├── figure-html │ │ │ └── unnamed-chunk-3-1.png │ │ └── header-attrs-2.6 │ │ │ └── header-attrs.js │ ├── vignette_F_complex_files │ │ ├── figure-html │ │ │ └── unnamed-chunk-3-1.png │ │ ├── header-attrs-2.6 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.8 │ │ │ └── header-attrs.js │ ├── vignette_supervised_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-11-1.png │ │ │ ├── unnamed-chunk-17-1.png │ │ │ ├── unnamed-chunk-17-2.png │ │ │ ├── unnamed-chunk-19-1.png │ │ │ ├── unnamed-chunk-20-1.png │ │ │ ├── unnamed-chunk-24-1.png │ │ │ ├── unnamed-chunk-24-2.png │ │ │ ├── unnamed-chunk-26-1.png │ │ │ ├── unnamed-chunk-4-1.png │ │ │ ├── unnamed-chunk-4-2.png │ │ │ ├── unnamed-chunk-6-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ └── unnamed-chunk-9-1.png │ │ └── header-attrs-2.6 │ │ │ └── header-attrs.js │ ├── vignette_D_supervised_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-11-1.png │ │ │ ├── unnamed-chunk-17-1.png │ │ │ ├── unnamed-chunk-17-2.png │ │ │ ├── unnamed-chunk-19-1.png │ │ │ ├── unnamed-chunk-20-1.png │ │ │ ├── unnamed-chunk-24-1.png │ │ │ ├── unnamed-chunk-24-2.png │ │ │ ├── unnamed-chunk-26-1.png │ │ │ ├── unnamed-chunk-4-1.png │ │ │ ├── unnamed-chunk-4-2.png │ │ │ ├── unnamed-chunk-6-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ └── unnamed-chunk-9-1.png │ │ └── header-attrs-2.6 │ │ │ └── header-attrs.js │ ├── vignette_E_supervised_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-11-1.png │ │ │ ├── unnamed-chunk-13-1.png │ │ │ ├── unnamed-chunk-17-1.png │ │ │ ├── unnamed-chunk-17-2.png │ │ │ ├── unnamed-chunk-18-1.png │ │ │ ├── unnamed-chunk-19-1.png │ │ │ ├── unnamed-chunk-19-2.png │ │ │ ├── unnamed-chunk-20-1.png │ │ │ ├── unnamed-chunk-21-1.png │ │ │ ├── unnamed-chunk-21-2.png │ │ │ ├── unnamed-chunk-22-1.png │ │ │ ├── unnamed-chunk-23-1.png │ │ │ ├── unnamed-chunk-24-1.png │ │ │ ├── unnamed-chunk-24-2.png │ │ │ ├── unnamed-chunk-26-1.png │ │ │ ├── unnamed-chunk-26-2.png │ │ │ ├── unnamed-chunk-28-1.png │ │ │ ├── unnamed-chunk-28-2.png │ │ │ ├── unnamed-chunk-30-1.png │ │ │ ├── unnamed-chunk-4-1.png │ │ │ ├── unnamed-chunk-4-2.png │ │ │ ├── unnamed-chunk-6-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ ├── unnamed-chunk-8-1.png │ │ │ └── unnamed-chunk-9-1.png │ │ ├── header-attrs-2.6 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.8 │ │ │ └── header-attrs.js │ ├── vignette_unsupervised_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-6-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ └── unnamed-chunk-9-1.png │ │ └── header-attrs-2.6 │ │ │ └── header-attrs.js │ ├── vignette_B_unsupervised_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-6-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ └── unnamed-chunk-9-1.png │ │ └── header-attrs-2.6 │ │ │ └── header-attrs.js │ ├── vignette_C_unsupervised_files │ │ ├── figure-html │ │ │ ├── unnamed-chunk-6-1.png │ │ │ ├── unnamed-chunk-7-1.png │ │ │ └── unnamed-chunk-9-1.png │ │ ├── header-attrs-2.6 │ │ │ └── header-attrs.js │ │ └── header-attrs-2.8 │ │ │ └── header-attrs.js │ └── vignette_A_data_files │ │ ├── header-attrs-2.6 │ │ └── header-attrs.js │ │ └── header-attrs-2.8 │ │ └── header-attrs.js ├── pkgdown.yml ├── katex-auto.js ├── link.svg ├── bootstrap-toc.css ├── docsearch.js └── lightswitch.js ├── .Rbuildignore ├── multiblock.Rproj ├── .gitignore ├── README.md ├── _pkgdown.yml └── DESCRIPTION /.github/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | -------------------------------------------------------------------------------- /vignettes/.gitignore: -------------------------------------------------------------------------------- 1 | *.html 2 | *.R 3 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/.DS_Store -------------------------------------------------------------------------------- /R/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/R/.DS_Store -------------------------------------------------------------------------------- /data/wine.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/data/wine.rda -------------------------------------------------------------------------------- /inst/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/inst/.DS_Store -------------------------------------------------------------------------------- /man/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/man/.DS_Store -------------------------------------------------------------------------------- /data/candies.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/data/candies.rda -------------------------------------------------------------------------------- /data/mobile.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/data/mobile.rda -------------------------------------------------------------------------------- /data/potato.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/data/potato.rda -------------------------------------------------------------------------------- /src/crossprods.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/src/crossprods.o -------------------------------------------------------------------------------- /backgr/LimmPCA.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/backgr/LimmPCA.pdf -------------------------------------------------------------------------------- /backgr/potato.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/backgr/potato.rda -------------------------------------------------------------------------------- /data/simulated.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/data/simulated.rda -------------------------------------------------------------------------------- /src/RcppExports.o: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/src/RcppExports.o -------------------------------------------------------------------------------- /src/multiblock.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/src/multiblock.dll -------------------------------------------------------------------------------- /src/multiblock.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/src/multiblock.so -------------------------------------------------------------------------------- /vignettes/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/vignettes/.DS_Store -------------------------------------------------------------------------------- /backgr/RamanPUFA.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/backgr/RamanPUFA.rda -------------------------------------------------------------------------------- /man/figures/Wiley.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/man/figures/Wiley.png -------------------------------------------------------------------------------- /man/figures/wine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/man/figures/wine.png -------------------------------------------------------------------------------- /backgr/halvdikotom.rda: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/backgr/halvdikotom.rda -------------------------------------------------------------------------------- /docs/reference/gca-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/gca-1.png -------------------------------------------------------------------------------- /docs/reference/gpa-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/gpa-1.png -------------------------------------------------------------------------------- /docs/reference/sca-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sca-1.png -------------------------------------------------------------------------------- /man/figures/mobile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/man/figures/mobile.png -------------------------------------------------------------------------------- /docs/reference/asca-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/asca-1.png -------------------------------------------------------------------------------- /docs/reference/asca-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/asca-2.png -------------------------------------------------------------------------------- /docs/reference/asca-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/asca-3.png -------------------------------------------------------------------------------- /docs/reference/disco-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/disco-1.png -------------------------------------------------------------------------------- /docs/reference/hpca-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/hpca-1.png -------------------------------------------------------------------------------- /docs/reference/maage-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/maage-1.png -------------------------------------------------------------------------------- /docs/reference/maage-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/maage-2.png -------------------------------------------------------------------------------- /docs/reference/mbpls-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/mbpls-1.png -------------------------------------------------------------------------------- /docs/reference/mbpls-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/mbpls-2.png -------------------------------------------------------------------------------- /docs/reference/mbrda-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/mbrda-1.png -------------------------------------------------------------------------------- /docs/reference/mcoa-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/mcoa-1.png -------------------------------------------------------------------------------- /docs/reference/popls-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/popls-1.png -------------------------------------------------------------------------------- /docs/reference/sopls-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls-1.png -------------------------------------------------------------------------------- /man/figures/LPLSsmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/man/figures/LPLSsmall.png -------------------------------------------------------------------------------- /man/figures/simulated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/man/figures/simulated.png -------------------------------------------------------------------------------- /docs/reference/Rplot001.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/Rplot001.png -------------------------------------------------------------------------------- /docs/reference/Rplot002.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/Rplot002.png -------------------------------------------------------------------------------- /docs/reference/Rplot003.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/Rplot003.png -------------------------------------------------------------------------------- /docs/reference/Rplot004.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/Rplot004.png -------------------------------------------------------------------------------- /docs/reference/Rplot005.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/Rplot005.png -------------------------------------------------------------------------------- /docs/reference/Rplot006.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/Rplot006.png -------------------------------------------------------------------------------- /docs/reference/Rplot007.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/Rplot007.png -------------------------------------------------------------------------------- /docs/reference/Rplot008.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/Rplot008.png -------------------------------------------------------------------------------- /docs/reference/Rplot009.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/Rplot009.png -------------------------------------------------------------------------------- /docs/reference/hogsvd-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/hogsvd-1.png -------------------------------------------------------------------------------- /docs/reference/pcagca-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/pcagca-1.png -------------------------------------------------------------------------------- /docs/reference/smbpls-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/smbpls-1.png -------------------------------------------------------------------------------- /docs/reference/smbpls-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/smbpls-2.png -------------------------------------------------------------------------------- /docs/reference/smbpls-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/smbpls-3.png -------------------------------------------------------------------------------- /docs/reference/smbpls-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/smbpls-4.png -------------------------------------------------------------------------------- /docs/reference/statis-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/statis-1.png -------------------------------------------------------------------------------- /docs/reference/figures/wine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/figures/wine.png -------------------------------------------------------------------------------- /docs/reference/preprocess-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/preprocess-1.png -------------------------------------------------------------------------------- /docs/reference/rosa_plots-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/rosa_plots-1.png -------------------------------------------------------------------------------- /docs/reference/rosa_plots-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/rosa_plots-2.png -------------------------------------------------------------------------------- /docs/reference/rosa_plots-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/rosa_plots-3.png -------------------------------------------------------------------------------- /docs/reference/sopls_plot-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plot-1.png -------------------------------------------------------------------------------- /docs/reference/sopls_plot-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plot-2.png -------------------------------------------------------------------------------- /docs/reference/sopls_plot-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plot-3.png -------------------------------------------------------------------------------- /docs/reference/sopls_plot-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plot-4.png -------------------------------------------------------------------------------- /docs/reference/sopls_plot-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plot-5.png -------------------------------------------------------------------------------- /docs/reference/sopls_plot-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plot-6.png -------------------------------------------------------------------------------- /docs/reference/supervised-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/supervised-1.png -------------------------------------------------------------------------------- /.Rbuildignore: -------------------------------------------------------------------------------- 1 | ^.*\.Rproj$ 2 | ^\.Rproj\.user$ 3 | backgr 4 | ^_pkgdown\.yml$ 5 | ^docs$ 6 | ^pkgdown$ 7 | ^\.github$ 8 | -------------------------------------------------------------------------------- /docs/reference/figures/Wiley.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/figures/Wiley.png -------------------------------------------------------------------------------- /docs/reference/predict.mbpls-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/predict.mbpls-1.png -------------------------------------------------------------------------------- /docs/reference/rosa_plotting-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/rosa_plotting-1.png -------------------------------------------------------------------------------- /docs/reference/rosa_plotting-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/rosa_plotting-2.png -------------------------------------------------------------------------------- /docs/reference/rosa_plotting-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/rosa_plotting-3.png -------------------------------------------------------------------------------- /docs/reference/sopls_plots-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plots-1.png -------------------------------------------------------------------------------- /docs/reference/sopls_plots-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plots-2.png -------------------------------------------------------------------------------- /docs/reference/sopls_plots-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plots-3.png -------------------------------------------------------------------------------- /docs/reference/sopls_plots-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plots-4.png -------------------------------------------------------------------------------- /docs/reference/sopls_plots-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plots-5.png -------------------------------------------------------------------------------- /docs/reference/sopls_plots-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plots-6.png -------------------------------------------------------------------------------- /docs/reference/sopls_plots-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plots-7.png -------------------------------------------------------------------------------- /docs/reference/sopls_plots-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plots-8.png -------------------------------------------------------------------------------- /docs/reference/sopls_plots-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_plots-9.png -------------------------------------------------------------------------------- /docs/reference/sopls_results-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_results-1.png -------------------------------------------------------------------------------- /docs/reference/sopls_results-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/sopls_results-2.png -------------------------------------------------------------------------------- /docs/reference/unsupervised-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/unsupervised-1.png -------------------------------------------------------------------------------- /docs/reference/figures/LPLSsmall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/figures/LPLSsmall.png -------------------------------------------------------------------------------- /docs/reference/figures/simulated.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/figures/simulated.png -------------------------------------------------------------------------------- /docs/reference/figures/LPLS_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/figures/LPLS_small.png -------------------------------------------------------------------------------- /docs/reference/multiblock_object-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/multiblock_object-1.png -------------------------------------------------------------------------------- /docs/reference/multiblock_plots-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/multiblock_plots-1.png -------------------------------------------------------------------------------- /docs/reference/multiblock_plots-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/multiblock_plots-2.png -------------------------------------------------------------------------------- /docs/reference/multiblock_plots-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/multiblock_plots-3.png -------------------------------------------------------------------------------- /docs/reference/multiblock_plots-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/multiblock_plots-4.png -------------------------------------------------------------------------------- /docs/reference/multiblock_plots-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/reference/multiblock_plots-5.png -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.4.2/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.5.2/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.5.2/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.4.2/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.4.2/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.4.2/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.5.2/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.5.2/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.5.2/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.5.2/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.5.2/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.5.2/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.4.2/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.4.2/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.5.2/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.5.2/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.5.2/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.5.2/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.4.2/webfonts/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.5.2/webfonts/fa-v4compatibility.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.5.2/webfonts/fa-v4compatibility.ttf -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.4.2/webfonts/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.4.2/webfonts/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /docs/deps/font-awesome-6.5.2/webfonts/fa-v4compatibility.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/deps/font-awesome-6.5.2/webfonts/fa-v4compatibility.woff2 -------------------------------------------------------------------------------- /docs/articles/vignette_C_asca_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_C_asca_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_C_asca_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_C_asca_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_C_asca_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_C_asca_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_asca_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_asca_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_asca_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_asca_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_asca_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_asca_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_asca_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_asca_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_asca_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_asca_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_asca_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_asca_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_basic_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_basic_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_basic_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_basic_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_A_basic_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_A_basic_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_A_basic_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_A_basic_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_B_basic_files/figure-html/unnamed-chunk-5-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_B_basic_files/figure-html/unnamed-chunk-5-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_B_basic_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_B_basic_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_complex_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_complex_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /inst/extdata/meta_data.csv: -------------------------------------------------------------------------------- 1 | "","temperature","colour" 2 | "John",38,"blue" 3 | "Julia",37,"green" 4 | "James",37.5,"blue" 5 | "Jacob",37.6,"red" 6 | "Jane",37.2,"red" 7 | "Johanna",37.9,"green" 8 | -------------------------------------------------------------------------------- /docs/articles/vignette_E_complex_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_complex_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_F_complex_files/figure-html/unnamed-chunk-3-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_F_complex_files/figure-html/unnamed-chunk-3-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-11-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-11-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-17-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-17-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-17-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-17-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-19-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-19-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-20-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-20-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-24-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-24-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-24-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-24-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-26-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-26-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-4-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-4-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_supervised_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-11-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-11-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-17-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-17-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-17-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-17-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-19-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-19-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-20-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-20-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-24-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-24-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-24-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-24-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-26-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-26-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-4-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-4-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_D_supervised_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-11-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-11-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-13-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-13-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-17-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-17-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-17-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-17-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-18-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-18-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-19-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-19-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-19-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-19-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-20-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-20-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-21-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-21-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-21-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-21-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-22-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-22-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-23-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-23-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-24-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-24-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-24-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-24-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-26-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-26-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-26-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-26-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-28-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-28-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-28-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-28-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-30-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-30-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-4-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-4-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-4-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-4-2.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-8-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-8-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_E_supervised_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_unsupervised_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_unsupervised_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_unsupervised_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_unsupervised_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_unsupervised_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_unsupervised_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_B_unsupervised_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_B_unsupervised_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_B_unsupervised_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_B_unsupervised_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_B_unsupervised_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_B_unsupervised_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_C_unsupervised_files/figure-html/unnamed-chunk-6-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_C_unsupervised_files/figure-html/unnamed-chunk-6-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_C_unsupervised_files/figure-html/unnamed-chunk-7-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_C_unsupervised_files/figure-html/unnamed-chunk-7-1.png -------------------------------------------------------------------------------- /docs/articles/vignette_C_unsupervised_files/figure-html/unnamed-chunk-9-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/khliland/multiblock/HEAD/docs/articles/vignette_C_unsupervised_files/figure-html/unnamed-chunk-9-1.png -------------------------------------------------------------------------------- /docs/reference/R2.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/R2.mbpls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/maageSeq.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/pcr.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/sopls_pm.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/MSEP.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/MSEP.mbpls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/RMSEP.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/RMSEP.mbpls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/asca.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/asca_fit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/coefplot.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/loadings.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/plsr.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/predplot.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/print.SO_TDI.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/scores.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/timeplot.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/cvsegments.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/image.rosa.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/loadingplot.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/lplsCV.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/mvrValstats.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/mvrValstats.mbpls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/pcp.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/scoreplot.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/sopls_pm_multiple.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/R2.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/barplot.rosa.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/biplot.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/block.preprocess.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/blockexpl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/classify.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/coef.rosa.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/coef.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/corrplot.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/cvanova.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/loading.weights.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/loadingplot.asca.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/loadings.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/pcp.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/permutationplot.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/plot.lpls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/predict.lpls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/predict.rosa.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/print.SO_TDI_multiple.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/print.asca.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/print.rosa.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/projections.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/scoreplot.asca.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/scores.asca.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/scores.rosa.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/scores.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/summary.asca.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/summary.rosa.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/validationplot.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/RMSEP.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/classify.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/corrplot.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/cvanova.default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/cvanova.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/loadingplot.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/loadings.asca.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/loadings.rosa.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/multiblock-package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/pcp.default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/plot.cvanova.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/predict.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/print.cvanova.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/print.rosaexpl.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/print.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/projections.asca.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/residuals.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/rosa.classify.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/scoreplot.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/summary.cvanova.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/summary.sopls.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/corrplot.mvr.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/print.summary.asca.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Makevars: -------------------------------------------------------------------------------- 1 | ## With Rcpp 0.11.0 and later, we no longer need to set PKG_LIBS as there is 2 | ## no user-facing library. The include path to headers is already set by R. 3 | #PKG_LIBS = 4 | 5 | ## With R 3.1.0 or later, you can uncomment the following line to tell R to 6 | ## enable compilation with C++11 (or even C++14) where available 7 | #CXX_STD = CXX11 8 | -------------------------------------------------------------------------------- /docs/reference/biplot.multiblock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/corrplot.default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/corrplot.multiblock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/loadingweightplot.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /src/Makevars.win: -------------------------------------------------------------------------------- 1 | ## With Rcpp 0.11.0 and later, we no longer need to set PKG_LIBS as there is 2 | ## no user-facing library. The include path to headers is already set by R. 3 | #PKG_LIBS = 4 | 5 | ## With R 3.1.0 or later, you can uncomment the following line to tell R to 6 | ## enable compilation with C++11 (or even C++14) where available 7 | #CXX_STD = CXX11 8 | -------------------------------------------------------------------------------- /docs/reference/loadingplot.multiblock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/loadings.multiblock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/print.multiblock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/scoreplot.multiblock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/scores.multiblock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /docs/reference/summary.multiblock.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /inst/extdata/genes.dat: -------------------------------------------------------------------------------- 1 | 0.390331063873873 -0.572039005289952 1.91475731955132 2 | 0.553527846459998 0.0948703003156232 -0.223975527190076 3 | 0.098723459872341 -0.102938470981234 0.904713819823475 4 | -0.592137399477964 -0.602773924612193 0.617708322859651 5 | -0.0235014793444975 0.357280862550769 -0.516841560024766 6 | 0.766448447196551 1.28634283334984 1.82392982838131 7 | -------------------------------------------------------------------------------- /inst/extdata/proteins.csv: -------------------------------------------------------------------------------- 1 | "prot1";"prot2";"prot3" 2 | 0,465320477870283;0,301833000054732;-1,4654413599728 3 | -1,79802081309626;-0,228122324141773;-0,463920265383971 4 | -1,92962433931677;-0,405130804592568;0,17677963236255 5 | 0,874371378123843;0,798437984397823;0,12347307981234 6 | -0,624452778531966;-0,0797547931805336;-1,11263323313997 7 | -0,074937210801587;1,09576027448753;1,26565955924275 8 | -------------------------------------------------------------------------------- /docs/pkgdown.yml: -------------------------------------------------------------------------------- 1 | pandoc: '3.2' 2 | pkgdown: 2.1.1 3 | pkgdown_sha: ~ 4 | articles: 5 | vignette_A_data: vignette_A_data.html 6 | vignette_B_basic: vignette_B_basic.html 7 | vignette_C_unsupervised: vignette_C_unsupervised.html 8 | vignette_D_asca: vignette_D_asca.html 9 | vignette_E_supervised: vignette_E_supervised.html 10 | vignette_F_complex: vignette_F_complex.html 11 | last_built: 2025-03-25T10:07Z 12 | urls: 13 | reference: https://khliland.github.io/multiblock/reference 14 | article: https://khliland.github.io/multiblock/articles 15 | -------------------------------------------------------------------------------- /multiblock.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | ProjectId: 8f16c313-799e-4a5d-9bab-15acee3446b2 3 | 4 | RestoreWorkspace: Default 5 | SaveWorkspace: Default 6 | AlwaysSaveHistory: Default 7 | 8 | EnableCodeIndexing: Yes 9 | UseSpacesForTab: Yes 10 | NumSpacesForTab: 2 11 | Encoding: UTF-8 12 | 13 | RnwWeave: Sweave 14 | LaTeX: pdfLaTeX 15 | 16 | BuildType: Package 17 | PackageUseDevtools: Yes 18 | PackageInstallArgs: --no-multiarch --with-keep.source 19 | PackageCheckArgs: --as-cran --library=C:/R/Library 20 | PackageRoxygenize: rd,collate,namespace,vignette 21 | 22 | SpellingDictionary: en_GB 23 | -------------------------------------------------------------------------------- /docs/articles/vignette_A_basic_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_A_data_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_A_data_files/header-attrs-2.8/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_B_basic_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_B_basic_files/header-attrs-2.8/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_C_asca_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_D_asca_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_D_asca_files/header-attrs-2.8/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_asca_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_basic_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_complex_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_D_supervised_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_E_complex_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_E_supervised_files/header-attrs-2.8/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_F_complex_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_F_complex_files/header-attrs-2.8/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_supervised_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_unsupervised_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_B_unsupervised_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_C_unsupervised_files/header-attrs-2.6/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/articles/vignette_C_unsupervised_files/header-attrs-2.8/header-attrs.js: -------------------------------------------------------------------------------- 1 | // Pandoc 2.9 adds attributes on both header and div. We remove the former (to 2 | // be compatible with the behavior of Pandoc < 2.8). 3 | document.addEventListener('DOMContentLoaded', function(e) { 4 | var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); 5 | var i, h, a; 6 | for (i = 0; i < hs.length; i++) { 7 | h = hs[i]; 8 | if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 9 | a = h.attributes; 10 | while (a.length > 0) h.removeAttribute(a[0].name); 11 | } 12 | }); 13 | -------------------------------------------------------------------------------- /docs/deps/headroom-0.11.0/jQuery.headroom.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * headroom.js v0.9.4 - Give your page some headroom. Hide your header until you need it 3 | * Copyright (c) 2017 Nick Williams - http://wicky.nillia.ms/headroom.js 4 | * License: MIT 5 | */ 6 | 7 | !function(a){a&&(a.fn.headroom=function(b){return this.each(function(){var c=a(this),d=c.data("headroom"),e="object"==typeof b&&b;e=a.extend(!0,{},Headroom.options,e),d||(d=new Headroom(this,e),d.init(),c.data("headroom",d)),"string"==typeof b&&(d[b](),"destroy"===b&&c.removeData("headroom"))})},a("[data-headroom]").each(function(){var b=a(this);b.headroom(b.data())}))}(window.Zepto||window.jQuery); -------------------------------------------------------------------------------- /docs/katex-auto.js: -------------------------------------------------------------------------------- 1 | // https://github.com/jgm/pandoc/blob/29fa97ab96b8e2d62d48326e1b949a71dc41f47a/src/Text/Pandoc/Writers/HTML.hs#L332-L345 2 | document.addEventListener("DOMContentLoaded", function () { 3 | var mathElements = document.getElementsByClassName("math"); 4 | var macros = []; 5 | for (var i = 0; i < mathElements.length; i++) { 6 | var texText = mathElements[i].firstChild; 7 | if (mathElements[i].tagName == "SPAN") { 8 | katex.render(texText.data, mathElements[i], { 9 | displayMode: mathElements[i].classList.contains("display"), 10 | throwOnError: false, 11 | macros: macros, 12 | fleqn: false 13 | }); 14 | }}}); 15 | -------------------------------------------------------------------------------- /man/mcolors.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/utilities.R 3 | \name{mcolors} 4 | \alias{mcolors} 5 | \title{Colour palette generation from matrix of RGB values} 6 | \usage{ 7 | mcolors( 8 | n, 9 | colmatrix = matrix(c(0, 0, 1, 1, 1, 1, 1, 0, 0), 3, 3, byrow = TRUE) 10 | ) 11 | } 12 | \arguments{ 13 | \item{n}{Integer number of colorus to produce.} 14 | 15 | \item{colmatrix}{A numeric \code{matrix} of three columns (R,G,B) to generate colour palette from.} 16 | } 17 | \value{ 18 | A vector of n colours in hexadecimal RGB format. 19 | } 20 | \description{ 21 | Colour palette generation from matrix of RGB values 22 | } 23 | \examples{ 24 | mcolors(5) 25 | } 26 | -------------------------------------------------------------------------------- /man/explvar.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/utilities.R 3 | \name{explvar} 4 | \alias{explvar} 5 | \title{Explained predictor variance} 6 | \usage{ 7 | explvar(object) 8 | } 9 | \arguments{ 10 | \item{object}{An object fitted using a method from the multiblock package} 11 | } 12 | \value{ 13 | A \code{vector} of component-wise explained variances for predictors. 14 | } 15 | \description{ 16 | Extraction and/or computation of explained variances for various 17 | object classes in the \code{multiblock} package. 18 | } 19 | \examples{ 20 | data(potato) 21 | so <- sopls(Sensory ~ Chemical + Compression, data=potato, ncomp=c(10,10), 22 | max_comps=10) 23 | explvar(so) 24 | } 25 | -------------------------------------------------------------------------------- /R/complex.R: -------------------------------------------------------------------------------- 1 | #' @name complex 2 | #' @title Methods With Complex Linkage 3 | #' @description This documentation covers a few complex methods. In particular: 4 | #' * L-PLS - Partial Least Squares in L configuration (\code{\link{lpls}}) 5 | #' * SO-PLS-PM - Sequential and Orthogonalised PLS Path Modeling (\code{\link{sopls_pm}}) 6 | #' @examples 7 | #' # L-PLS 8 | #' sim <- lplsData(I = 30, N = 20, J = 5, K = 6, ncomp = 2) 9 | #' X1 <- sim$X1; X2 <- sim$X2; X3 <- sim$X3 10 | #' lp <- lpls(X1,X2,X3) # exo-L-PLS 11 | #' 12 | #' @seealso Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 13 | NULL 14 | -------------------------------------------------------------------------------- /man/candies.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/datasets.R 3 | \docType{data} 4 | \name{candies} 5 | \alias{candies} 6 | \title{Sensory assessment of candies.} 7 | \format{ 8 | A data.frame having 165 rows and 3 variables: 9 | \describe{ 10 | \item{assessment}{Matrix of sensory attributes} 11 | \item{assessor}{Factor of assessors} 12 | \item{candy}{Factor of candies} 13 | } 14 | } 15 | \usage{ 16 | data(candies) 17 | } 18 | \description{ 19 | A dataset containing 9 sensory attributes for 5 candies assessed 20 | by 11 trained assessors. 21 | } 22 | \references{ 23 | Luciano G, Næs T. Interpreting sensory data by combining principal 24 | component analysis and analysis of variance. Food Qual Prefer. 2009;20(3):167-175. 25 | } 26 | -------------------------------------------------------------------------------- /man/dummycode.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/utilities.R 3 | \name{dummycode} 4 | \alias{dummycode} 5 | \title{Dummy-coding of a single vector} 6 | \usage{ 7 | dummycode(Y, contrast = "contr.sum", drop = TRUE) 8 | } 9 | \arguments{ 10 | \item{Y}{\code{vector} to dummy code.} 11 | 12 | \item{contrast}{Contrast type, default = "contr.sum".} 13 | 14 | \item{drop}{\code{logical} indicating if one level should be dropped (default = TRUE).} 15 | } 16 | \value{ 17 | \code{matrix} made by dummy-coding the input vector. 18 | } 19 | \description{ 20 | Flexible dummy-coding allowing for all R's built-in types of contrasts 21 | and optional dropping of a factor level to reduce rank defficiency probability. 22 | } 23 | \examples{ 24 | vec <- c("a","a","b","b","c","c") 25 | dummycode(vec) 26 | } 27 | -------------------------------------------------------------------------------- /docs/link.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 8 | 12 | 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # History files 2 | .Rhistory 3 | .Rapp.history 4 | 5 | # Session Data files 6 | .RData 7 | 8 | # User-specific files 9 | .Ruserdata 10 | 11 | # Example code in package build process 12 | *-Ex.R 13 | 14 | # Output files from R CMD build 15 | /*.tar.gz 16 | 17 | # Output files from R CMD check 18 | /*.Rcheck/ 19 | 20 | # RStudio files 21 | .Rproj.user/ 22 | 23 | # produced vignettes 24 | vignettes/*.html 25 | vignettes/*.pdf 26 | 27 | # OAuth2 token, see https://github.com/hadley/httr/releases/tag/v0.3 28 | .httr-oauth 29 | 30 | # knitr and R markdown default cache directories 31 | *_cache/ 32 | /cache/ 33 | 34 | # Temporary files created by R markdown 35 | *.utf8.md 36 | *.knit.md 37 | 38 | # R Environment Variables 39 | .Renviron 40 | 41 | # Platform specific builds 42 | src-i386/* 43 | src-x64/* 44 | 45 | # pkgdown website 46 | # docs 47 | 48 | # My own old files 49 | backgr 50 | -------------------------------------------------------------------------------- /man/complex.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/complex.R 3 | \name{complex} 4 | \alias{complex} 5 | \title{Methods With Complex Linkage} 6 | \description{ 7 | This documentation covers a few complex methods. In particular: 8 | \itemize{ 9 | \item L-PLS - Partial Least Squares in L configuration (\code{\link{lpls}}) 10 | \item SO-PLS-PM - Sequential and Orthogonalised PLS Path Modeling (\code{\link{sopls_pm}}) 11 | } 12 | } 13 | \examples{ 14 | # L-PLS 15 | sim <- lplsData(I = 30, N = 20, J = 5, K = 6, ncomp = 2) 16 | X1 <- sim$X1; X2 <- sim$X2; X3 <- sim$X3 17 | lp <- lpls(X1,X2,X3) # exo-L-PLS 18 | 19 | } 20 | \seealso{ 21 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 22 | } 23 | -------------------------------------------------------------------------------- /man/compnames.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/utilities.R 3 | \name{compnames} 4 | \alias{compnames} 5 | \title{Vector of component names} 6 | \usage{ 7 | compnames(object, comps, explvar = FALSE, ...) 8 | } 9 | \arguments{ 10 | \item{object}{An object fitted using the multiblock package.} 11 | 12 | \item{comps}{\code{integer} vector of components.} 13 | 14 | \item{explvar}{\code{logical} indicating if explained variances should be included.} 15 | 16 | \item{...}{Unused} 17 | } 18 | \value{ 19 | A \code{character} vector of component names. 20 | } 21 | \description{ 22 | Convenience function for creating a vector 23 | of component names based on the dimensions the input object 24 | (\code{matrix} or object having a \code{score} function). 25 | } 26 | \details{ 27 | This is a copy of \code{compnames} from the \code{pls} package to work with 28 | \code{multiblock} objects. 29 | } 30 | -------------------------------------------------------------------------------- /docs/deps/data-deps.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /man/wine.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/datasets.R 3 | \docType{data} 4 | \name{wine} 5 | \alias{wine} 6 | \title{Wines of Val de Loire} 7 | \format{ 8 | A data.frame having 21 rows and 5 variables: 9 | \describe{ 10 | \item{Smell at rest}{Matrix of sensory assessments} 11 | \item{View}{Matrix of sensory assessments} 12 | \item{Smell after shaking}{Matrix of sensory assessments} 13 | \item{Tasting}{Matrix of sensory assessments} 14 | \item{Global quality}{Matrix of sensory assessments} 15 | } 16 | } 17 | \usage{ 18 | data(wine) 19 | } 20 | \description{ 21 | This dataset contains sensory assessment of 21 wines. The assessments are grouped 22 | according to the tasting process and thus have a natural ordering with a all blocks pointing forward 23 | to all remaining blocks in the process. 24 | 25 | \figure{wine.png}{Path-diagram for wine data} 26 | } 27 | \references{ 28 | Escofier B, Pages L. Analyses Factorielles Simples and Multiples. Paris: Dunod; 1988. 29 | } 30 | -------------------------------------------------------------------------------- /man/unique_combos.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/utilities.R 3 | \name{unique_combos} 4 | \alias{unique_combos} 5 | \title{Unique combinations of blocks} 6 | \usage{ 7 | unique_combos(n_block, max_level, min_level = 2) 8 | } 9 | \arguments{ 10 | \item{n_block}{\code{integer} number of input blocks.} 11 | 12 | \item{max_level}{\code{integer} maximum number of blocks per combination.} 13 | 14 | \item{min_level}{\code{integer} minimum number of blocks per combination.} 15 | } 16 | \value{ 17 | A list of unique block combinations. 18 | } 19 | \description{ 20 | Compute a list of all possible block combinations where 21 | the number of blocks in each combination is limited by parameters 22 | \code{min_level} and \code{max_level}. 23 | } 24 | \details{ 25 | This function is used for minimal redundancy implementations of 26 | \code{\link{rosa}} and \code{\link{sopls}} and for lookups into computed 27 | components. 28 | } 29 | \examples{ 30 | unique_combos(3, 2) 31 | 32 | } 33 | -------------------------------------------------------------------------------- /man/mobile.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/datasets.R 3 | \docType{data} 4 | \name{mobile} 5 | \alias{mobile} 6 | \title{ECSI Mobile Mobile Phone Provider Dataset} 7 | \format{ 8 | A data.frame having 250 rows and 7 variables: 9 | \describe{ 10 | \item{A}{Image} 11 | \item{B}{Customer expectation} 12 | \item{C}{Perceived quality} 13 | \item{D}{Perceived value} 14 | \item{E}{Customer satisfaction} 15 | \item{F}{Customer complaints} 16 | \item{G}{Customer loyalty} 17 | } 18 | } 19 | \usage{ 20 | data(mobile) 21 | } 22 | \description{ 23 | Mobile data questionnaire often used as an example in path modelling. 24 | All the items are scaled from 1 to 10. Score 1 expresses a very negative 25 | point of view on the product while score 10 a very positive opinion. For details, 26 | see the original publication. 27 | 28 | \figure{mobile.png}{Path-diagram for mobile data} 29 | } 30 | \references{ 31 | Tenenhaus M, Esposito Vinzi V, Chatelin YM, Lauro C. PLS path modeling. Comput Stat Data Anal. 2005;48(1):159‐205. 32 | } 33 | -------------------------------------------------------------------------------- /man/simulated.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/datasets.R 3 | \docType{data} 4 | \name{simulated} 5 | \alias{simulated} 6 | \title{Data simulated to have certain characteristics.} 7 | \format{ 8 | A list of matrices having 200 rows and 10 variables: 9 | \describe{ 10 | \item{A}{Simulated matrix A} 11 | \item{B}{Simulated matrix B} 12 | ... 13 | } 14 | } 15 | \usage{ 16 | data(simulated) 17 | } 18 | \description{ 19 | A dataset containing simulated data for 4 connected events where A is the 20 | starting point and D is the end point. This can be described as a directed 21 | acyclic graph (sketched below, moving left->right). \cr 22 | 23 | \figure{simulated.png}{Path-diagram for simulated data} 24 | 25 | Subpaths include: ABD, AD, ABCD, ACD 26 | } 27 | \references{ 28 | Tormod Næs, Rosaria Romano, Oliver Tomic, Ingrid Måge, Age Smilde, Kristian Hovde Liland, 29 | Sequential and orthogonalized PLS (SO-PLS) regression for path analysis: Order of blocks and relations between effects. 30 | Journal of Chemometrics, In Press 31 | } 32 | -------------------------------------------------------------------------------- /man/block.data.frame.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/utilities.R 3 | \name{block.data.frame} 4 | \alias{block.data.frame} 5 | \title{Block-wise indexable data.frame} 6 | \usage{ 7 | block.data.frame(X, block_inds = NULL, to.matrix = TRUE) 8 | } 9 | \arguments{ 10 | \item{X}{Either a single \code{data.frame} to index or a \code{list} of matrices/data.frames} 11 | 12 | \item{block_inds}{Named \code{list} of indexes if \code{X} is a single \code{data.frame}, otherwise \code{NULL}.} 13 | 14 | \item{to.matrix}{\code{logical} indicating if input list elements should be converted to matrices.} 15 | } 16 | \value{ 17 | A \code{data.frame} which can be indexed block-wise. 18 | } 19 | \description{ 20 | This is a convenience function for making \code{data.frame}s that are easily 21 | indexed on a block-wise basis. 22 | } 23 | \examples{ 24 | # Random data 25 | M <- matrix(rnorm(200), nrow = 10) 26 | # .. with dimnames 27 | dimnames(M) <- list(LETTERS[1:10], as.character(1:20)) 28 | 29 | # A named list for indexing 30 | inds <- list(B1 = 1:10, B2 = 11:20) 31 | 32 | X <- block.data.frame(M, inds) 33 | str(X) 34 | 35 | } 36 | -------------------------------------------------------------------------------- /man/extended.model.frame.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/utilities.R 3 | \name{extended.model.frame} 4 | \alias{extended.model.frame} 5 | \title{Extracting the Extended Model Frame from a Formula or Fit} 6 | \usage{ 7 | extended.model.frame(formula, data, ..., sep = ".") 8 | } 9 | \arguments{ 10 | \item{formula}{a model formula or terms object or an R object.} 11 | 12 | \item{data}{a data.frame, list or environment (see \code{\link{model.frame}}).} 13 | 14 | \item{...}{further arguments to pass to \code{\link{model.frame}}.} 15 | 16 | \item{sep}{separator in contraction of names for interactions (default = ".").} 17 | } 18 | \value{ 19 | A \code{\link{data.frame}} that includes everything a \code{\link{model.frame}} 20 | does plus interaction terms. 21 | } 22 | \description{ 23 | This function attempts to apply \code{\link{model.frame}} and extend the 24 | result with columns of interactions. 25 | } 26 | \examples{ 27 | dat <- data.frame(Y = c(1,2,3,4,5,6), 28 | X = factor(LETTERS[c(1,1,2,2,3,3)]), 29 | W = factor(letters[c(1,2,1,2,1,2)])) 30 | extended.model.frame(Y ~ X*W, dat) 31 | } 32 | -------------------------------------------------------------------------------- /R/RcppExports.R: -------------------------------------------------------------------------------- 1 | # Generated by using Rcpp::compileAttributes() -> do not edit by hand 2 | # Generator token: 10BE3573-1514-4C36-9D1C-5A225CD40393 3 | 4 | crossprodnum <- function(AA) { 5 | .Call('_multiblock_crossprodnum', PACKAGE = 'multiblock', AA) 6 | } 7 | 8 | tcrossprodnum <- function(AA) { 9 | .Call('_multiblock_tcrossprodnum', PACKAGE = 'multiblock', AA) 10 | } 11 | 12 | crossprodint <- function(AA) { 13 | .Call('_multiblock_crossprodint', PACKAGE = 'multiblock', AA) 14 | } 15 | 16 | tcrossprodint <- function(AA) { 17 | .Call('_multiblock_tcrossprodint', PACKAGE = 'multiblock', AA) 18 | } 19 | 20 | tcrossprodnumnum <- function(AA, BB) { 21 | .Call('_multiblock_tcrossprodnumnum', PACKAGE = 'multiblock', AA, BB) 22 | } 23 | 24 | tcrossprodintint <- function(AA, BB) { 25 | .Call('_multiblock_tcrossprodintint', PACKAGE = 'multiblock', AA, BB) 26 | } 27 | 28 | crossprodnumnum <- function(AA, BB) { 29 | .Call('_multiblock_crossprodnumnum', PACKAGE = 'multiblock', AA, BB) 30 | } 31 | 32 | crossprodintint <- function(AA, BB) { 33 | .Call('_multiblock_crossprodintint', PACKAGE = 'multiblock', AA, BB) 34 | } 35 | 36 | crossprodIntint <- function(AA, BB) { 37 | .Call('_multiblock_crossprodIntint', PACKAGE = 'multiblock', AA, BB) 38 | } 39 | 40 | -------------------------------------------------------------------------------- /R/direct_export.R: -------------------------------------------------------------------------------- 1 | #' @importFrom HDANOVA asca 2 | #' @export 3 | HDANOVA::asca 4 | 5 | # #' @importFrom HDANOVA hdanova 6 | # #' @export 7 | # HDANOVA::hdanova 8 | 9 | #' @importFrom HDANOVA scoreplot 10 | #' @export 11 | HDANOVA::scoreplot 12 | 13 | #' @importFrom HDANOVA loadingplot 14 | #' @export 15 | HDANOVA::loadingplot 16 | 17 | #' @importFrom HDANOVA timeplot 18 | #' @export 19 | HDANOVA::timeplot 20 | 21 | #' @importFrom HDANOVA permutationplot 22 | #' @export 23 | HDANOVA::permutationplot 24 | 25 | #' @export 26 | pls::pcr 27 | 28 | #' @export 29 | pls::plsr 30 | 31 | #' @importFrom pls MSEP 32 | #' @export 33 | pls::MSEP 34 | 35 | #' @importFrom pls R2 36 | #' @export 37 | pls::R2 38 | 39 | #' @importFrom pls RMSEP 40 | #' @export 41 | pls::RMSEP 42 | 43 | #' @export 44 | pls::coefplot 45 | 46 | #-#' @export 47 | # pls::corrplot 48 | 49 | #' @export 50 | pls::cvsegments 51 | 52 | #' @export 53 | pls::loading.weights 54 | 55 | #' @export 56 | pls::loadingplot 57 | 58 | #' @export 59 | pls::loadings 60 | 61 | #' @importFrom pls mvrValstats 62 | #' @export 63 | pls::mvrValstats 64 | 65 | #' @export 66 | pls::predplot 67 | 68 | #' @export 69 | pls::scoreplot 70 | 71 | #' @export 72 | pls::scores 73 | 74 | #' @export 75 | pls::validationplot 76 | -------------------------------------------------------------------------------- /man/basic.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/basic.R 3 | \name{basic} 4 | \alias{basic} 5 | \title{Single- and Two-Block Methods} 6 | \description{ 7 | This documentation covers a range of single- and two-block methods. In particular: 8 | \itemize{ 9 | \item PCA - Principal Component Analysis (\code{\link{pca}}) 10 | \item PCR - Principal Component Regression (\code{\link{pcr}}) 11 | \item PLSR - Partial Least Squares Regression (\code{\link{plsr}}) 12 | \item CCA - Canonical Correlation Analysis (\code{\link{cca}}) 13 | \item IFA - Interbattery Factor Analysis (\code{\link{ifa}}) 14 | \item GSVD - Generalized SVD (\code{\link{gsvd}}) 15 | } 16 | } 17 | \examples{ 18 | data(potato) 19 | X <- potato$Chemical 20 | y <- potato$Sensory[,1,drop=FALSE] 21 | 22 | pca.pot <- pca(X, ncomp = 2) 23 | pcr.pot <- pcr(y ~ X, ncomp = 2) 24 | pls.pot <- plsr(y ~ X, ncomp = 2) 25 | cca.pot <- cca(potato[1:2]) 26 | ifa.pot <- ifa(potato[1:2]) 27 | gsvd.pot <- gsvd(lapply(potato[3:4], t)) 28 | 29 | } 30 | \seealso{ 31 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 32 | } 33 | -------------------------------------------------------------------------------- /man/lplsData.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/lplsData.R 3 | \name{lplsData} 4 | \alias{lplsData} 5 | \title{L-PLS data simulation for exo-type analysis} 6 | \usage{ 7 | lplsData(I = 30, N = 20, J = 5, K = 6, ncomp = 2) 8 | } 9 | \arguments{ 10 | \item{I}{\code{numeric} number of rows of X1 and X2} 11 | 12 | \item{N}{\code{numeric} number of columns in X1 and X3} 13 | 14 | \item{J}{\code{numeric} number of columns in X2} 15 | 16 | \item{K}{\code{numeric} number of rows in X3} 17 | 18 | \item{ncomp}{\code{numeric} number of latent components} 19 | } 20 | \value{ 21 | A \code{list} of three matrices with dimensions matching in an L-shape. 22 | } 23 | \description{ 24 | Three data blocks are simulated to express covariance in an exo-L-PLS direction (see \code{\link{lpls}}. 25 | Dimensionality and number of underlying components can be controlled. 26 | } 27 | \examples{ 28 | lp <- lplsData(I = 30, N = 20, J = 5, K = 6, ncomp = 2) 29 | names(lp) 30 | 31 | } 32 | \seealso{ 33 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 34 | } 35 | \author{ 36 | Solve Sæbø (adapted by Kristian Hovde Liland) 37 | } 38 | -------------------------------------------------------------------------------- /man/gsvd.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/basic.R 3 | \name{gsvd} 4 | \alias{gsvd} 5 | \title{Generalised Singular Value Decomposition - GSVD} 6 | \usage{ 7 | gsvd(X) 8 | } 9 | \arguments{ 10 | \item{X}{\code{list} of input data blocks.} 11 | } 12 | \value{ 13 | \code{multiblock} object with associated with printing, scores, loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 14 | and result functions: \code{\link{multiblock_results}}. 15 | } 16 | \description{ 17 | This is a wrapper for the \code{geigen::gsvd} function for computing GSVD. 18 | } 19 | \details{ 20 | GSVD is a generalisation of SVD to two variable-linked matrices where common loadings 21 | and block-wise scores are estimated. 22 | } 23 | \examples{ 24 | data(potato) 25 | X <- potato$Chemical 26 | 27 | gsvd.pot <- gsvd(lapply(potato[3:4], t)) 28 | 29 | } 30 | \references{ 31 | Van Loan, C. (1976) Generalizing the singular value decomposition. SIAM Journal on Numerical Analysis, 13, 76–83. 32 | } 33 | \seealso{ 34 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 35 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 36 | } 37 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # multiblock 2 | 3 | 4 | [![Lifecycle: experimental](https://img.shields.io/badge/lifecycle-experimental-blue.svg)](https://lifecycle.r-lib.org/articles/stages.html#experimental) 5 | [![CRAN Status](https://www.r-pkg.org/badges/version/multiblock)](https://cran.r-project.org/package=multiblock) 6 | 7 | 8 | 9 | 10 | ## Installation 11 | 12 | ``` r 13 | # Install release version from CRAN 14 | install.packages("multiblock") 15 | # Install development version from GitHub 16 | devtools::install_github("khliland/multiblock") 17 | ``` 18 | 19 | ## Multiblock book 20 | 21 | This package contains a large variety of the methods described in Age K. Smilde, Tormod Næs and Kristian Hovde Liland's book: 22 | 23 | _Multiblock Data Fusion in Statistics and Machine Learning_ 24 | _- Applications in the Natural and Life Sciences_ 25 | 26 | Published by Wiley in May 2022. 27 | 28 | ## Contents 29 | 30 | - Functions and vignettes organised into: 31 | - data handling 32 | - basic methods 33 | - unsupervised methods 34 | - ASCA 35 | - supervised methods 36 | - methods for complex structures 37 | - A selection of datasets 38 | - Common framework and plotting routines 39 | -------------------------------------------------------------------------------- /man/reexports.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/direct_export.R 3 | \docType{import} 4 | \name{reexports} 5 | \alias{reexports} 6 | \alias{asca} 7 | \alias{scoreplot} 8 | \alias{loadingplot} 9 | \alias{timeplot} 10 | \alias{permutationplot} 11 | \alias{pcr} 12 | \alias{plsr} 13 | \alias{MSEP} 14 | \alias{R2} 15 | \alias{RMSEP} 16 | \alias{coefplot} 17 | \alias{cvsegments} 18 | \alias{loading.weights} 19 | \alias{loadings} 20 | \alias{mvrValstats} 21 | \alias{predplot} 22 | \alias{scores} 23 | \alias{validationplot} 24 | \title{Objects exported from other packages} 25 | \keyword{internal} 26 | \description{ 27 | These objects are imported from other packages. Follow the links 28 | below to see their documentation. 29 | 30 | \describe{ 31 | \item{HDANOVA}{\code{\link[HDANOVA]{asca}}, \code{\link[HDANOVA:reexports]{loadingplot}}, \code{\link[HDANOVA:asca_plots]{permutationplot}}, \code{\link[HDANOVA:reexports]{scoreplot}}, \code{\link[HDANOVA]{timeplot}}} 32 | 33 | \item{pls}{\code{\link[pls:mvrVal]{MSEP}}, \code{\link[pls:mvrVal]{R2}}, \code{\link[pls:mvrVal]{RMSEP}}, \code{\link[pls]{coefplot}}, \code{\link[pls]{cvsegments}}, \code{\link[pls:scores]{loading.weights}}, \code{\link[pls:scoreplot]{loadingplot}}, \code{\link[pls:scores]{loadings}}, \code{\link[pls:mvrVal]{mvrValstats}}, \code{\link[pls:mvr]{pcr}}, \code{\link[pls:mvr]{plsr}}, \code{\link[pls]{predplot}}, \code{\link[pls]{scoreplot}}, \code{\link[pls]{scores}}, \code{\link[pls]{validationplot}}} 34 | }} 35 | 36 | -------------------------------------------------------------------------------- /man/supervised.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/supervised.R 3 | \name{supervised} 4 | \alias{supervised} 5 | \title{Supervised Multiblock Methods} 6 | \description{ 7 | Collection of supervised multiblock methods: 8 | \itemize{ 9 | \item MB-PLS - Multiblock Partial Least Squares (\code{\link{mbpls}}) 10 | \item sMB-PLS - Sparse Multiblock Partial Least Squares (\code{\link{smbpls}}) 11 | \item SO-PLS - Sequential and Orthogonalized PLS (\code{\link{sopls}}) 12 | \item PO-PLS - Parallel and Orthogonalized PLS (\code{\link{popls}}) 13 | \item ROSA - Response Oriented Sequential Alternation (\code{\link{rosa}}) 14 | \item mbRDA - Multiblock Redundancy Analysis (\code{\link{mbrda}}) 15 | } 16 | } 17 | \examples{ 18 | data(potato) 19 | mb <- mbpls(Sensory ~ Chemical + Compression, data=potato, ncomp = 5) 20 | print(mb) 21 | 22 | # Convert data.frame with AsIs objects to list of matrices 23 | potatoList <- lapply(potato, unclass) 24 | mbr <- mbrda(Sensory ~ Chemical + Compression, data=potatoList, ncomp = 10) 25 | print(mbr) 26 | scoreplot(mbr, labels="names") 27 | 28 | } 29 | \seealso{ 30 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 31 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 32 | } 33 | -------------------------------------------------------------------------------- /man/cca.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/basic.R 3 | \name{cca} 4 | \alias{cca} 5 | \title{Canonical Correlation Analysis - CCA} 6 | \usage{ 7 | cca(X) 8 | } 9 | \arguments{ 10 | \item{X}{\code{list} of input data blocks.} 11 | } 12 | \value{ 13 | \code{multiblock} object with associated with printing, scores, loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 14 | and result functions: \code{\link{multiblock_results}}. 15 | } 16 | \description{ 17 | This is a wrapper for the \code{stats::cancor} function for computing CCA. 18 | } 19 | \details{ 20 | CCA is a method which maximises correlation between linear combinations of the columns of 21 | two blocks, i.e. max(cor(X1 x a, X2 x b)). This is done sequentially with deflation in between, such 22 | that a sequence of correlations and weight vectors a and b are associated with a pair of matrices. 23 | } 24 | \examples{ 25 | data(potato) 26 | X <- potato$Chemical 27 | 28 | cca.pot <- cca(potato[1:2]) 29 | } 30 | \references{ 31 | Hotelling, H. (1936) Relations between two sets of variates. Biometrika, 28, 321–377. 32 | } 33 | \seealso{ 34 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 35 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 36 | } 37 | -------------------------------------------------------------------------------- /_pkgdown.yml: -------------------------------------------------------------------------------- 1 | url: https://khliland.github.io/multiblock/ 2 | template: 3 | bootstrap: 5 4 | reference: 5 | - title: "Multiblock object" 6 | desc: A common object type for many multiblock methods. 7 | - contents: 8 | - multiblock 9 | - multiblock_results 10 | - multiblock_plots 11 | - title: "Basic methods" 12 | desc: Single- and two-block methods 13 | - contents: 14 | - basic 15 | - pca 16 | - pcr 17 | - plsr 18 | - cca 19 | - ifa 20 | - gsvd 21 | - title: "Unsupervised methods" 22 | - contents: 23 | - unsupervised 24 | - sca 25 | - gca 26 | - gpa 27 | - mfa 28 | - pcagca 29 | - disco 30 | - DISCOsca 31 | - hpca 32 | - mcoa 33 | - jive 34 | - statis 35 | - hogsvd 36 | - title: "Supervised methods" 37 | - contents: 38 | - supervised 39 | - mbpls 40 | - smbpls 41 | - sopls 42 | - sopls_results 43 | - sopls_plots 44 | - maage 45 | - popls 46 | - rosa 47 | - rosa_results 48 | - rosa_plots 49 | - mbrda 50 | - mvrVal 51 | - predict.mbpls 52 | - title: "Complex methods" 53 | - contents: 54 | - complex 55 | - lpls 56 | - lpls_results 57 | - lplsData 58 | - sopls_pm 59 | - title: "ASCA" 60 | - contents: 61 | - asca 62 | - title: "Utility functions" 63 | - contents: 64 | - block.data.frame 65 | - compnames 66 | - dummycode 67 | - explvar 68 | - mcolors 69 | - reexports 70 | - unique_combos 71 | - extended.model.frame 72 | - preprocess 73 | - title: "Datasets" 74 | - contents: 75 | - candies 76 | - mobile 77 | - potato 78 | - simulated 79 | - wine 80 | -------------------------------------------------------------------------------- /man/jive.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/unsupervised.R 3 | \name{jive} 4 | \alias{jive} 5 | \title{Joint and Individual Variation Explained - JIVE} 6 | \usage{ 7 | jive(X, ...) 8 | } 9 | \arguments{ 10 | \item{X}{\code{list} of input blocks.} 11 | 12 | \item{...}{additional arguments for \code{r.jive::jive}.} 13 | } 14 | \value{ 15 | \code{multiblock} object including relevant scores and loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 16 | and result functions: \code{\link{multiblock_results}}. 17 | } 18 | \description{ 19 | This is a wrapper for the \code{r.jive::jive} function for computing JIVE. 20 | } 21 | \details{ 22 | Jive performs a decomposition of the variation in two or more blocks into 23 | low-dimensional representations of individual and joint variation plus residual variation. 24 | } 25 | \examples{ 26 | \donttest{ # Too time consuming for testing 27 | data(candies) 28 | candyList <- lapply(1:nlevels(candies$candy),function(x)candies$assessment[candies$candy==x,]) 29 | can.jive <- jive(candyList) 30 | summary(can.jive) 31 | } 32 | 33 | } 34 | \references{ 35 | Lock, E., Hoadley, K., Marron, J., and Nobel, A. (2013) Joint and individual variation explained (JIVE) for integrated analysis of multiple data types. Ann Appl Stat, 7 (1), 523–542. 36 | } 37 | \seealso{ 38 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 39 | } 40 | -------------------------------------------------------------------------------- /.github/workflows/pkgdown.yaml: -------------------------------------------------------------------------------- 1 | on: 2 | push: 3 | branches: 4 | - main 5 | - master 6 | 7 | name: pkgdown 8 | 9 | jobs: 10 | pkgdown: 11 | runs-on: macOS-latest 12 | env: 13 | GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} 14 | steps: 15 | - uses: actions/checkout@v2 16 | 17 | - uses: r-lib/actions/setup-r@v1 18 | 19 | - uses: r-lib/actions/setup-pandoc@v1 20 | 21 | - name: Query dependencies 22 | run: | 23 | install.packages('remotes') 24 | saveRDS(remotes::dev_package_deps(dependencies = TRUE), ".github/depends.Rds", version = 2) 25 | writeLines(sprintf("R-%i.%i", getRversion()$major, getRversion()$minor), ".github/R-version") 26 | shell: Rscript {0} 27 | 28 | - name: Restore R package cache 29 | uses: actions/cache@v2 30 | with: 31 | path: ${{ env.R_LIBS_USER }} 32 | key: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1-${{ hashFiles('.github/depends.Rds') }} 33 | restore-keys: ${{ runner.os }}-${{ hashFiles('.github/R-version') }}-1- 34 | 35 | - name: Install dependencies 36 | run: | 37 | remotes::install_deps(dependencies = TRUE) 38 | install.packages("pkgdown", type = "binary") 39 | shell: Rscript {0} 40 | 41 | - name: Install package 42 | run: R CMD INSTALL . 43 | 44 | - name: Deploy package 45 | run: | 46 | git config --local user.email "actions@github.com" 47 | git config --local user.name "GitHub Actions" 48 | Rscript -e 'pkgdown::deploy_to_branch(new_process = FALSE)' 49 | -------------------------------------------------------------------------------- /man/hogsvd.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/unsupervised.R 3 | \name{hogsvd} 4 | \alias{hogsvd} 5 | \title{Higher Order Generalized SVD - HOGSVD} 6 | \usage{ 7 | hogsvd(X) 8 | } 9 | \arguments{ 10 | \item{X}{\code{list} of input blocks.} 11 | } 12 | \value{ 13 | \code{multiblock} object including relevant scores and loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 14 | and result functions: \code{\link{multiblock_results}}. 15 | } 16 | \description{ 17 | This is a simple implementation for computing HOGSVD 18 | } 19 | \details{ 20 | HOGSVD is a generalisation of SVD to two or more blocks. It finds a common set 21 | of loadings across blocks and individual sets of scores per block. 22 | } 23 | \examples{ 24 | data(candies) 25 | candyList <- lapply(1:nlevels(candies$candy),function(x)candies$assessment[candies$candy==x,]) 26 | can.hogsvd <- hogsvd(candyList) 27 | scoreplot(can.hogsvd, block=1, labels="names") 28 | 29 | } 30 | \references{ 31 | Ponnapalli, S. P., Saunders, M. A., Van Loan, C. F., & Alter, O. (2011). A higher-order generalized singular value decomposition for comparison of global mRNA expression from multiple organisms. PloS one, 6(12), e28072. 32 | } 33 | \seealso{ 34 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 35 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 36 | } 37 | -------------------------------------------------------------------------------- /DESCRIPTION: -------------------------------------------------------------------------------- 1 | Encoding: UTF-8 2 | Package: multiblock 3 | Type: Package 4 | Title: Multiblock Data Fusion in Statistics and Machine Learning 5 | Version: 0.8.10 6 | Date: 2025-04-01 7 | Authors@R: 8 | c(person(given = "Kristian Hovde", 9 | family = "Liland", 10 | role = c("aut", "cre"), 11 | email = "kristian.liland@nmbu.no", 12 | comment = c(ORCID = "0000-0001-6468-9423")), 13 | person(given = "Solve", 14 | family = "Sæbø", 15 | role = c("ctb")), 16 | person(given = "Stefan", 17 | family = "Schrunner", 18 | role = c("rev"))) 19 | Description: Functions and datasets to support Smilde, Næs and Liland (2021, ISBN: 978-1-119-60096-1) 20 | "Multiblock Data Fusion in Statistics and Machine Learning - Applications in the Natural and Life Sciences". 21 | This implements and imports a large collection of methods for multiblock data analysis with common interfaces, result- and plotting 22 | functions, several real data sets and six vignettes covering a range different applications. 23 | License: GPL (>= 2) 24 | URL: https://khliland.github.io/multiblock/, https://github.com/khliland/multiblock/ 25 | BugReports: https://github.com/khliland/multiblock/issues/ 26 | Depends: R (>= 3.5.0) 27 | Imports: ade4, 28 | car, 29 | HDANOVA (>= 0.8.2), 30 | MASS, 31 | mixlm, 32 | plotrix, 33 | pls, 34 | plsVarSel, 35 | pracma, 36 | progress, 37 | Rcpp, 38 | RSpectra, 39 | SSBtools 40 | Suggests: EMSC, 41 | FactoMineR, 42 | geigen, 43 | RGCCA (>= 3.0.0), 44 | r.jive, 45 | rmarkdown, 46 | knitr 47 | LinkingTo: Rcpp, RcppEigen 48 | Roxygen: list(markdown = TRUE) 49 | RoxygenNote: 7.3.2 50 | VignetteBuilder: knitr 51 | -------------------------------------------------------------------------------- /man/ifa.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/basic.R 3 | \name{ifa} 4 | \alias{ifa} 5 | \title{Inter-battery Factor Analysis - IFA} 6 | \usage{ 7 | ifa(X, ncomp = 1, scale = FALSE, verbose = FALSE, ...) 8 | } 9 | \arguments{ 10 | \item{X}{\code{list} of input data blocks.} 11 | 12 | \item{ncomp}{\code{integer} number of principal components to return.} 13 | 14 | \item{scale}{\code{logical} indicating if variables should be standardised (default=FALSE).} 15 | 16 | \item{verbose}{\code{logical} indicating if intermediate results should be printed.} 17 | 18 | \item{...}{additional arguments to \code{RGCCA::rgcca}.} 19 | } 20 | \value{ 21 | \code{multiblock} object with associated with printing, scores, loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 22 | and result functions: \code{\link{multiblock_results}}. 23 | } 24 | \description{ 25 | This is a wrapper for the \code{RGCCA::rgcca} function for computing IFA. 26 | } 27 | \details{ 28 | IFA rotates two matrices to align one or more factors against each other, maximising correlations. 29 | } 30 | \examples{ 31 | data(potato) 32 | X <- potato$Chemical 33 | 34 | ifa.pot <- ifa(potato[1:2]) 35 | } 36 | \references{ 37 | Tucker, L. R. (1958). An inter-battery method of factor analysis. Psychometrika, 23(2), 111-136. 38 | } 39 | \seealso{ 40 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 41 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 42 | } 43 | -------------------------------------------------------------------------------- /man/gpa.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/unsupervised.R 3 | \name{gpa} 4 | \alias{gpa} 5 | \title{Generalized Procrustes Analysis - GPA} 6 | \usage{ 7 | gpa(X, graph = FALSE, ...) 8 | } 9 | \arguments{ 10 | \item{X}{\code{list} of input blocks.} 11 | 12 | \item{graph}{\code{logical} indicating if decomposition should be plotted.} 13 | 14 | \item{...}{additional arguments for RGCCA approach.} 15 | } 16 | \value{ 17 | \code{multiblock} object including relevant scores and loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 18 | and result functions: \code{\link{multiblock_results}}. 19 | } 20 | \description{ 21 | This is a wrapper for the \code{FactoMineR::GPA} function for computing GPA. 22 | } 23 | \details{ 24 | GPA is a generalisation of Procrustes analysis, where one matrix is scaled and 25 | rotated to be as similar as possible to another one. Through the generalisation, individual 26 | scaling and rotation of each input matrix is performed against a common 27 | representation which is estimated in an iterative manner. 28 | } 29 | \examples{ 30 | data(potato) 31 | potList <- as.list(potato[c(1,2,9)]) 32 | pot.gpa <- gpa(potList) 33 | plot(scores(pot.gpa), labels="names") 34 | 35 | } 36 | \references{ 37 | Gower, J. C. (1975). Generalized procrustes analysis. Psychometrika. 40: 33–51. 38 | } 39 | \seealso{ 40 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 41 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 42 | } 43 | -------------------------------------------------------------------------------- /man/DISCOsca.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/DISCOsca.R 3 | \name{DISCOsca} 4 | \alias{DISCOsca} 5 | \title{DISCO-SCA rotation.} 6 | \usage{ 7 | DISCOsca(DATA, R, Jk) 8 | } 9 | \arguments{ 10 | \item{DATA}{A matrix, which contains the concatenated data with the same subjects from multiple blocks. 11 | Note that each row represents a subject.} 12 | 13 | \item{R}{Number of components (R>=2).} 14 | 15 | \item{Jk}{A vector containing number of variables in the concatenated data matrix.} 16 | } 17 | \value{ 18 | \item{Trot_best}{Estimated component score matrix (i.e., T)} 19 | \item{Prot_best}{Estimated component loading matrix (i.e., P)} 20 | \item{comdist}{A matrix representing common distinctive components. (Rows are data blocks and columns are components.) 0 in the matrix indicating that the corresponding 21 | component of that block is estimated to be zeros, and 1 indicates that (at least one component loading in) the corresponding component of that block is not zero. 22 | Thus, if a column in the \code{comdist} matrix contains only 1's, then this column is a common component, otherwise distinctive component.} 23 | \item{propExp_component}{Proportion of variance per component.} 24 | } 25 | \description{ 26 | A DISCO-SCA procedure for identifying common and distinctive components. The code is adapted from the orphaned RegularizedSCA package by Zhengguo Gu. 27 | } 28 | \examples{ 29 | \dontrun{ 30 | DATA1 <- matrix(rnorm(50), nrow=5) 31 | DATA2 <- matrix(rnorm(100), nrow=5) 32 | DATA <- cbind(DATA1, DATA2) 33 | R <- 5 34 | Jk <- c(10, 20) 35 | DISCOsca(DATA, R, Jk) 36 | } 37 | } 38 | \references{ 39 | Schouteden, M., Van Deun, K., Wilderjans, T. F., & Van Mechelen, I. (2014). 40 | Performing DISCO-SCA to search for distinctive and common information in linked data. 41 | Behavior research methods, 46(2), 576-587. 42 | } 43 | -------------------------------------------------------------------------------- /man/disco.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/unsupervised.R 3 | \name{disco} 4 | \alias{disco} 5 | \title{Distinctive and Common Components with SCA - DISCO} 6 | \usage{ 7 | disco(X, ncomp = 2, ...) 8 | } 9 | \arguments{ 10 | \item{X}{\code{list} of input blocks.} 11 | 12 | \item{ncomp}{\code{integer} number of components to extract.} 13 | 14 | \item{...}{additional arguments (not used).} 15 | } 16 | \value{ 17 | \code{multiblock} object including relevant scores and loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 18 | and result functions: \code{\link{multiblock_results}}. 19 | } 20 | \description{ 21 | This is a wrapper for the \code{DISCOsca} function by Zhengguo Gu for computing DISCO. 22 | } 23 | \details{ 24 | DISCO is a restriction of SCA where Alternating Least Squares is used for 25 | estimation of loadings and scores. The SCA solution is rotated towards loadings (in sample linked mode) which are filled with 26 | zeros in a pattern resembling distinct, local and common components. 27 | When used in sample linked mode and only selecting distinct components, it shares a 28 | resemblance to SO-PLS, only in an unsupervised setting. Explained variances 29 | are computed as proportion of block variation explained by scores*loadings'. 30 | } 31 | \examples{ 32 | data(potato) 33 | potList <- as.list(potato[c(1,2,9)]) 34 | pot.disco <- disco(potList) 35 | plot(scores(pot.disco), labels="names") 36 | 37 | } 38 | \references{ 39 | Schouteden, M., Van Deun, K., Wilderjans, T. F., & Van Mechelen, I. (2014). Performing DISCO-SCA to search for distinctive and common information in linked data. Behavior research methods, 46(2), 576-587. 40 | } 41 | \seealso{ 42 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 43 | } 44 | -------------------------------------------------------------------------------- /man/potato.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/datasets.R 3 | \docType{data} 4 | \name{potato} 5 | \alias{potato} 6 | \title{Sensory, rheological, chemical and spectroscopic analysis of potatoes.} 7 | \format{ 8 | A data.frame having 26 rows and 9 variables: 9 | \describe{ 10 | \item{Chemical}{Matrix of chemical measurements} 11 | \item{Compression}{Matrix of rheological compression data} 12 | \item{NIRraw}{Matrix of near-infrared measurements of raw potatoes} 13 | \item{NIRcooked}{Matrix of near-infrared measurements of cooked potatoes} 14 | \item{CPMGraw}{Matrix of NMR (CPMG) measurements of raw potatoes} 15 | \item{CPMGcooked}{Matrix of NMR (CPMG) measurements of cooked potatoes} 16 | \item{FIDraw}{Matrix of NMR (FID) measurements of raw potatoes} 17 | \item{FIDcooked}{Matrix of NMR (FID) measurements of cooked potatoes} 18 | \item{Sensory}{Matrix of sensory assessments} 19 | } 20 | } 21 | \usage{ 22 | data(potato) 23 | } 24 | \description{ 25 | A dataset containing 9 blocks of measurements on 26 potatoes. 26 | Original dataset can be found at http://models.life.ku.dk/Texture_Potatoes. 27 | This version has been pre-processed as follows (corresponding to Liland et al. 2016): 28 | \itemize{ 29 | \item Variables containing NaN have been removed. 30 | \item Chemical and Compression blocks have been scaled by standard deviations. 31 | \item NIR blocks have been subjected to SNV (Standard Normal Variate). 32 | } 33 | } 34 | \references{ 35 | \itemize{ 36 | \item L.G.Thygesen, A.K.Thybo, S.B.Engelsen, Prediction of Sensory Texture Quality of Boiled Potatoes 37 | From Low-field1H NMR of Raw Potatoes. The Role of Chemical Constituents. LWT - Food Science and Technology 34(7), 2001, pp 469-477. 38 | \item Kristian Hovde Liland, Tormod Næs, Ulf Geir Indahl, ROSA – a fast extension of Partial Least Squares Regression for Multiblock Data Analysis, 39 | Journal of Chemometrics 30:11 (2016), pp. 651-662. 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /man/pca.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/basic.R 3 | \name{pca} 4 | \alias{pca} 5 | \title{Principal Component Analysis - PCA} 6 | \usage{ 7 | pca(X, scale = FALSE, ncomp = 1, ...) 8 | } 9 | \arguments{ 10 | \item{X}{\code{matrix} of input data.} 11 | 12 | \item{scale}{\code{logical} indicating if variables should be standardised (default=FALSE).} 13 | 14 | \item{ncomp}{\code{integer} number of principal components to return.} 15 | 16 | \item{...}{additional arguments to \code{pls:pcr}.} 17 | } 18 | \value{ 19 | \code{multiblock} object with scores, loadings, mean X values and explained variances. Relevant plotting functions: \code{\link{multiblock_plots}} 20 | and result functions: \code{\link{multiblock_results}}. 21 | } 22 | \description{ 23 | This is a wrapper for the \code{pls::PCR} function for computing PCA. 24 | } 25 | \details{ 26 | PCA is a method for decomposing a matrix into subspace components with sample scores and 27 | variable loadings. It can be formulated in various ways, but the standard formulation uses singular 28 | value decomposition to create scores and loadings. PCA is guaranteed to be the optimal way of extracting 29 | orthogonal subspaces from a matrix with regard to the amount of explained variance per component. 30 | } 31 | \examples{ 32 | data(potato) 33 | X <- potato$Chemical 34 | 35 | pca.pot <- pca(X, ncomp = 2) 36 | 37 | } 38 | \references{ 39 | Pearson, K. (1901) On lines and planes of closest fit to points in space. Philosophical Magazine, 2, 559–572. 40 | } 41 | \seealso{ 42 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 43 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 44 | } 45 | -------------------------------------------------------------------------------- /man/statis.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/unsupervised.R 3 | \name{statis} 4 | \alias{statis} 5 | \title{Structuration des Tableaux à Trois Indices de la Statistique - STATIS} 6 | \usage{ 7 | statis(X, ncomp = 3, scannf = FALSE, tol = 1e-07, ...) 8 | } 9 | \arguments{ 10 | \item{X}{\code{list} of input blocks.} 11 | 12 | \item{ncomp}{\code{integer} number of components to extract.} 13 | 14 | \item{scannf}{\code{logical} indicating if eigenvalue bar plot shoulde be displayed.} 15 | 16 | \item{tol}{\code{numeric} eigenvalue threshold tolerance.} 17 | 18 | \item{...}{additional arguments (not used).} 19 | } 20 | \value{ 21 | \code{multiblock} object including relevant scores and loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 22 | and result functions: \code{\link{multiblock_results}}. 23 | } 24 | \description{ 25 | This is a wrapper for the \code{ade4::statis} function for computing STATIS. 26 | } 27 | \details{ 28 | STATIS is a method, related to MFA, for analysing two or more blocks. It also 29 | decomposes the data into a low-dimensional subspace but uses a different scaling of the 30 | individual blocks. 31 | } 32 | \examples{ 33 | data(candies) 34 | candyList <- lapply(1:nlevels(candies$candy),function(x)candies$assessment[candies$candy==x,]) 35 | can.statis <- statis(candyList) 36 | plot(scores(can.statis), labels="names") 37 | 38 | } 39 | \references{ 40 | Lavit, C.; Escoufier, Y.; Sabatier, R.; Traissac, P. (1994). The ACT (STATIS method). Computational Statistics & Data Analysis. 18: 97 41 | } 42 | \seealso{ 43 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 44 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 45 | } 46 | -------------------------------------------------------------------------------- /man/hpca.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/unsupervised.R 3 | \name{hpca} 4 | \alias{hpca} 5 | \title{Hierarchical Principal component analysis - HPCA} 6 | \usage{ 7 | hpca(X, ncomp = 2, scale = FALSE, verbose = FALSE, ...) 8 | } 9 | \arguments{ 10 | \item{X}{\code{list} of input blocks.} 11 | 12 | \item{ncomp}{\code{integer} number of components to extract.} 13 | 14 | \item{scale}{\code{logical} indicating if variables should be scaled.} 15 | 16 | \item{verbose}{\code{logical} indicating if diagnostic information should be printed.} 17 | 18 | \item{...}{additional arguments for RGCCA.} 19 | } 20 | \value{ 21 | \code{multiblock} object including relevant scores and loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 22 | and result functions: \code{\link{multiblock_results}}. 23 | } 24 | \description{ 25 | This is a wrapper for the \code{RGCCA::rgcca} function for computing HPCA. 26 | } 27 | \details{ 28 | HPCA is a hierarchical PCA analysis which combines two or more blocks 29 | into a two-level decomposition with block-wise loadings and scores and superlevel 30 | common loadings and scores. The method is closely related to the supervised method MB-PLS 31 | in structure. 32 | } 33 | \examples{ 34 | data(potato) 35 | potList <- as.list(potato[c(1,2,9)]) 36 | pot.hpca <- hpca(potList) 37 | plot(scores(pot.hpca), labels="names") 38 | 39 | } 40 | \references{ 41 | Westerhuis, J.A., Kourti, T., and MacGregor,J.F. (1998). Analysis of multiblock and hierarchical PCA and PLS models. Journal of Chemometrics, 12, 301–321. 42 | } 43 | \seealso{ 44 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 45 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 46 | } 47 | -------------------------------------------------------------------------------- /man/multiblock_results.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/multiblock_results.R 3 | \name{multiblock_results} 4 | \alias{multiblock_results} 5 | \alias{scores.multiblock} 6 | \alias{loadings.multiblock} 7 | \alias{print.multiblock} 8 | \alias{summary.multiblock} 9 | \title{Result Functions for Multiblock Objects} 10 | \usage{ 11 | \method{scores}{multiblock}(object, block = 0, ...) 12 | 13 | \method{loadings}{multiblock}(object, block = 0, ...) 14 | 15 | \method{print}{multiblock}(x, ...) 16 | 17 | \method{summary}{multiblock}(object, ...) 18 | } 19 | \arguments{ 20 | \item{object}{\code{multiblock} object.} 21 | 22 | \item{block}{\code{integer/character} for block selection.} 23 | 24 | \item{...}{Not implemented.} 25 | 26 | \item{x}{\code{multiblock} object.} 27 | } 28 | \value{ 29 | Scores or loadings are returned by \code{scores.multiblock} and \code{loadings.multiblock}, while print and summary methods invisibly returns the object. 30 | } 31 | \description{ 32 | Standard result computation and extraction functions for \code{multiblock} objects. 33 | } 34 | \details{ 35 | Usage of the functions are shown using generics in the examples below. 36 | Object printing and summary are available through: 37 | \code{print.multiblock} and \code{summary.multiblock}. 38 | Scores and loadings have their own extensions of \code{scores()} and \code{loadings()} throught 39 | \code{scores.multiblock} and \code{loadings.multiblock}. 40 | } 41 | \examples{ 42 | data(wine) 43 | sc <- sca(wine[c('Smell at rest', 'View', 'Smell after shaking')], ncomp = 4) 44 | print(sc) 45 | summary(sc) 46 | head(loadings(sc, block = 1)) 47 | head(scores(sc)) 48 | 49 | } 50 | \seealso{ 51 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 52 | Common functions for plotting are found in \code{\link{multiblock_plots}}, respectively. 53 | } 54 | -------------------------------------------------------------------------------- /man/unsupervised.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/unsupervised.R 3 | \name{unsupervised} 4 | \alias{unsupervised} 5 | \title{Unsupervised Multiblock Methods} 6 | \description{ 7 | Collection of unsupervised multiblock methods: 8 | \itemize{ 9 | \item SCA - Simultaneous Component Analysis (\code{\link{sca}}) 10 | \item GCA - Generalized Canonical Analysis (\code{\link{gca}}) 11 | \item GPA - Generalized Procrustes Analysis (\code{\link{gpa}}) 12 | \item MFA - Multiple Factor Analysis (\code{\link{mfa}}) 13 | \item PCA-GCA (\code{\link{pcagca}}) 14 | \item DISCO - Distinctive and Common Components with SCA (\code{\link{disco}}) 15 | \item HPCA - Hierarchical Principal component analysis (\code{\link{hpca}}) 16 | \item MCOA - Multiple Co-Inertia Analysis (\code{\link{mcoa}}) 17 | \item JIVE - Joint and Individual Variation Explained (\code{\link{jive}}) 18 | \item STATIS - Structuration des Tableaux à Trois Indices de la Statistique (\code{\link{statis}}) 19 | \item HOGSVD - Higher Order Generalized SVD (\code{\link{hogsvd}}) 20 | } 21 | } 22 | \details{ 23 | Original documentation of STATIS: \link[ade4]{statis}. 24 | JIVE, STATIS and HOGSVD assume variable linked matrices/data.frames, while SCA handles both links. 25 | } 26 | \examples{ 27 | # Object linked data 28 | data(potato) 29 | potList <- as.list(potato[c(1,2,9)]) 30 | pot.sca <- sca(potList) 31 | 32 | # Variable linked data 33 | data(candies) 34 | candyList <- lapply(1:nlevels(candies$candy),function(x)candies$assessment[candies$candy==x,]) 35 | can.statis <- statis(candyList) 36 | plot(can.statis$statis) 37 | } 38 | \seealso{ 39 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 40 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 41 | } 42 | -------------------------------------------------------------------------------- /R/lplsData.R: -------------------------------------------------------------------------------- 1 | #' L-PLS data simulation for exo-type analysis 2 | #' 3 | #' @param I \code{numeric} number of rows of X1 and X2 4 | #' @param N \code{numeric} number of columns in X1 and X3 5 | #' @param J \code{numeric} number of columns in X2 6 | #' @param K \code{numeric} number of rows in X3 7 | #' @param ncomp \code{numeric} number of latent components 8 | #' @author Solve Sæbø (adapted by Kristian Hovde Liland) 9 | #' 10 | #' @description Three data blocks are simulated to express covariance in an exo-L-PLS direction (see \code{\link{lpls}}. 11 | #' Dimensionality and number of underlying components can be controlled. 12 | #' 13 | #' @return A \code{list} of three matrices with dimensions matching in an L-shape. 14 | #' 15 | #' @examples 16 | #' lp <- lplsData(I = 30, N = 20, J = 5, K = 6, ncomp = 2) 17 | #' names(lp) 18 | #' 19 | #' @seealso Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 20 | #' @export 21 | lplsData <- function(I = 30, N = 20, J = 5, K = 6, ncomp = 2){ 22 | # Data-simulation for LPLS testing (exo-type) 23 | 24 | # Simulations 25 | X1rowm <- rnorm(I, 0, 1) 26 | X1colm <- rnorm(N, 2, 2) 27 | X2colm <- rnorm(J, 5, 1) 28 | X3colm <- rnorm(N, 0, 1) 29 | X3rowm <- rnorm(K, 2, 1) 30 | 31 | X1 <- matrix(rnorm(I*N,0,1),I,N) 32 | ULV <- svd(X1) 33 | T21 <- ULV$u[,1:ncomp]%*%diag(sqrt(ULV$d[1:ncomp])) 34 | T22 <- ULV$v[,1:ncomp]%*%diag(sqrt(ULV$d[1:ncomp])) 35 | P1 <- matrix(rnorm(ncomp*J,4,1),J,ncomp) 36 | P3 <- matrix(rnorm(ncomp*K,2,2),K,ncomp) 37 | X1 <- T21%*%t(T22) 38 | X2 <- T21%*%t(P1) 39 | X3 <- T22%*%t(P3) 40 | 41 | # X3<-t(X3) 42 | 43 | dimnames(X2) <- list(paste("I",1:I,sep=""), paste("class",1:J)) 44 | dimnames(X1) <- list(paste("I",1:I,sep=""), as.character(1:N)) 45 | dimnames(X3) <- list(as.character(1:N), paste("clust",1:K)) 46 | 47 | return(list(X1 = X1, X2 = X2, X3 = t(X3))) 48 | } 49 | -------------------------------------------------------------------------------- /docs/bootstrap-toc.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) 3 | * Copyright 2015 Aidan Feldman 4 | * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ 5 | 6 | /* modified from https://github.com/twbs/bootstrap/blob/94b4076dd2efba9af71f0b18d4ee4b163aa9e0dd/docs/assets/css/src/docs.css#L548-L601 */ 7 | 8 | /* All levels of nav */ 9 | nav[data-toggle='toc'] .nav > li > a { 10 | display: block; 11 | padding: 4px 20px; 12 | font-size: 13px; 13 | font-weight: 500; 14 | color: #767676; 15 | } 16 | nav[data-toggle='toc'] .nav > li > a:hover, 17 | nav[data-toggle='toc'] .nav > li > a:focus { 18 | padding-left: 19px; 19 | color: #563d7c; 20 | text-decoration: none; 21 | background-color: transparent; 22 | border-left: 1px solid #563d7c; 23 | } 24 | nav[data-toggle='toc'] .nav > .active > a, 25 | nav[data-toggle='toc'] .nav > .active:hover > a, 26 | nav[data-toggle='toc'] .nav > .active:focus > a { 27 | padding-left: 18px; 28 | font-weight: bold; 29 | color: #563d7c; 30 | background-color: transparent; 31 | border-left: 2px solid #563d7c; 32 | } 33 | 34 | /* Nav: second level (shown on .active) */ 35 | nav[data-toggle='toc'] .nav .nav { 36 | display: none; /* Hide by default, but at >768px, show it */ 37 | padding-bottom: 10px; 38 | } 39 | nav[data-toggle='toc'] .nav .nav > li > a { 40 | padding-top: 1px; 41 | padding-bottom: 1px; 42 | padding-left: 30px; 43 | font-size: 12px; 44 | font-weight: normal; 45 | } 46 | nav[data-toggle='toc'] .nav .nav > li > a:hover, 47 | nav[data-toggle='toc'] .nav .nav > li > a:focus { 48 | padding-left: 29px; 49 | } 50 | nav[data-toggle='toc'] .nav .nav > .active > a, 51 | nav[data-toggle='toc'] .nav .nav > .active:hover > a, 52 | nav[data-toggle='toc'] .nav .nav > .active:focus > a { 53 | padding-left: 28px; 54 | font-weight: 500; 55 | } 56 | 57 | /* from https://github.com/twbs/bootstrap/blob/e38f066d8c203c3e032da0ff23cd2d6098ee2dd6/docs/assets/css/src/docs.css#L631-L634 */ 58 | nav[data-toggle='toc'] .nav > .active > ul { 59 | display: block; 60 | } 61 | -------------------------------------------------------------------------------- /docs/deps/bootstrap-toc-1.0.1/bootstrap-toc.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap Table of Contents v1.0.1 (http://afeld.github.io/bootstrap-toc/) 3 | * Copyright 2015 Aidan Feldman 4 | * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ 5 | !function(a){"use strict";window.Toc={helpers:{findOrFilter:function(e,t){var n=e.find(t);return e.filter(t).add(n).filter(":not([data-toc-skip])")},generateUniqueIdBase:function(e){return a(e).text().trim().replace(/\'/gi,"").replace(/[& +$,:;=?@"#{}|^~[`%!'<>\]\.\/\(\)\*\\\n\t\b\v]/g,"-").replace(/-{2,}/g,"-").substring(0,64).replace(/^-+|-+$/gm,"").toLowerCase()||e.tagName.toLowerCase()},generateUniqueId:function(e){for(var t=this.generateUniqueIdBase(e),n=0;;n++){var r=t;if(0')},createChildNavList:function(e){var t=this.createNavList();return e.append(t),t},generateNavEl:function(e,t){var n=a('');n.attr("href","#"+e),n.text(t);var r=a("
  • ");return r.append(n),r},generateNavItem:function(e){var t=this.generateAnchor(e),n=a(e),r=n.data("toc-text")||n.text();return this.generateNavEl(t,r)},getTopLevel:function(e){for(var t=1;t<=6;t++){if(1 2 | using namespace Rcpp; 3 | using Eigen::Map; 4 | using Eigen::MatrixXd; 5 | using Eigen::MatrixXi; 6 | using Eigen::VectorXd; 7 | using Eigen::VectorXi; 8 | using Eigen::Lower; 9 | 10 | // [[Rcpp::export]] 11 | NumericMatrix crossprodnum(SEXP AA){ 12 | 13 | const Map A(as >(AA)); 14 | const long int n(A.cols()); 15 | MatrixXd AtA(MatrixXd(n, n).setZero().selfadjointView().rankUpdate(A.adjoint())); 16 | return wrap(AtA); 17 | } 18 | 19 | // [[Rcpp::export]] 20 | NumericMatrix tcrossprodnum(SEXP AA){ 21 | 22 | const Map A(as >(AA)); 23 | const long int n(A.rows()); 24 | MatrixXd AAt(MatrixXd(n, n).setZero().selfadjointView().rankUpdate(A)); 25 | return wrap(AAt); 26 | } 27 | 28 | // [[Rcpp::export]] 29 | NumericMatrix crossprodint(SEXP AA){ 30 | 31 | const Map A(as >(AA)); 32 | const long int n(A.cols()); 33 | MatrixXi AtA(MatrixXi(n, n).setZero().selfadjointView().rankUpdate(A.adjoint())); 34 | return wrap(AtA); 35 | } 36 | 37 | // [[Rcpp::export]] 38 | NumericMatrix tcrossprodint(SEXP AA){ 39 | 40 | const Map A(as >(AA)); 41 | const long int n(A.rows()); 42 | MatrixXi AAt(MatrixXi(n, n).setZero().selfadjointView().rankUpdate(A)); 43 | return wrap(AAt); 44 | } 45 | 46 | // [[Rcpp::export]] 47 | NumericMatrix tcrossprodnumnum(SEXP AA, SEXP BB){ 48 | 49 | const Map A(as >(AA)); 50 | const Map B(as >(BB)); 51 | return wrap(A * B.adjoint()); 52 | } 53 | 54 | // [[Rcpp::export]] 55 | NumericMatrix tcrossprodintint(SEXP AA, SEXP BB){ 56 | 57 | const Map A(as >(AA)); 58 | const Map B(as >(BB)); 59 | return wrap(A * B.adjoint()); 60 | } 61 | 62 | // [[Rcpp::export]] 63 | NumericMatrix crossprodnumnum(SEXP AA, SEXP BB){ 64 | 65 | const Map A(as >(AA)); 66 | const Map B(as >(BB)); 67 | return wrap(A.adjoint() * B); 68 | } 69 | 70 | // [[Rcpp::export]] 71 | NumericMatrix crossprodintint(SEXP AA, SEXP BB){ 72 | 73 | const Map A(as >(AA)); 74 | const Map B(as >(BB)); 75 | return wrap(A.adjoint() * B); 76 | } 77 | 78 | // [[Rcpp::export]] 79 | NumericMatrix crossprodIntint(SEXP AA, SEXP BB){ 80 | 81 | const Map A(as >(AA)); 82 | const Map B(as >(BB)); 83 | return wrap(B*A); 84 | } 85 | -------------------------------------------------------------------------------- /docs/lightswitch.js: -------------------------------------------------------------------------------- 1 | 2 | /*! 3 | * Color mode toggler for Bootstrap's docs (https://getbootstrap.com/) 4 | * Copyright 2011-2023 The Bootstrap Authors 5 | * Licensed under the Creative Commons Attribution 3.0 Unported License. 6 | * Updates for {pkgdown} by the {bslib} authors, also licensed under CC-BY-3.0. 7 | */ 8 | 9 | const getStoredTheme = () => localStorage.getItem('theme') 10 | const setStoredTheme = theme => localStorage.setItem('theme', theme) 11 | 12 | const getPreferredTheme = () => { 13 | const storedTheme = getStoredTheme() 14 | if (storedTheme) { 15 | return storedTheme 16 | } 17 | 18 | return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' 19 | } 20 | 21 | const setTheme = theme => { 22 | if (theme === 'auto') { 23 | document.documentElement.setAttribute('data-bs-theme', (window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')) 24 | } else { 25 | document.documentElement.setAttribute('data-bs-theme', theme) 26 | } 27 | } 28 | 29 | function bsSetupThemeToggle () { 30 | 'use strict' 31 | 32 | const showActiveTheme = (theme, focus = false) => { 33 | var activeLabel, activeIcon; 34 | 35 | document.querySelectorAll('[data-bs-theme-value]').forEach(element => { 36 | const buttonTheme = element.getAttribute('data-bs-theme-value') 37 | const isActive = buttonTheme == theme 38 | 39 | element.classList.toggle('active', isActive) 40 | element.setAttribute('aria-pressed', isActive) 41 | 42 | if (isActive) { 43 | activeLabel = element.textContent; 44 | activeIcon = element.querySelector('span').classList.value; 45 | } 46 | }) 47 | 48 | const themeSwitcher = document.querySelector('#dropdown-lightswitch') 49 | if (!themeSwitcher) { 50 | return 51 | } 52 | 53 | themeSwitcher.setAttribute('aria-label', activeLabel) 54 | themeSwitcher.querySelector('span').classList.value = activeIcon; 55 | 56 | if (focus) { 57 | themeSwitcher.focus() 58 | } 59 | } 60 | 61 | window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', () => { 62 | const storedTheme = getStoredTheme() 63 | if (storedTheme !== 'light' && storedTheme !== 'dark') { 64 | setTheme(getPreferredTheme()) 65 | } 66 | }) 67 | 68 | window.addEventListener('DOMContentLoaded', () => { 69 | showActiveTheme(getPreferredTheme()) 70 | 71 | document 72 | .querySelectorAll('[data-bs-theme-value]') 73 | .forEach(toggle => { 74 | toggle.addEventListener('click', () => { 75 | const theme = toggle.getAttribute('data-bs-theme-value') 76 | setTheme(theme) 77 | setStoredTheme(theme) 78 | showActiveTheme(theme, true) 79 | }) 80 | }) 81 | }) 82 | } 83 | 84 | setTheme(getPreferredTheme()); 85 | bsSetupThemeToggle(); 86 | -------------------------------------------------------------------------------- /man/maage.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/maage.R 3 | \name{maage} 4 | \alias{maage} 5 | \alias{maageSeq} 6 | \title{Måge plot} 7 | \usage{ 8 | maage( 9 | object, 10 | expl_var = TRUE, 11 | pure.trace = FALSE, 12 | pch = 20, 13 | xlab = "# components", 14 | ylab = ifelse(expl_var, "Explained variance (\%)", "RMSECV"), 15 | xlim = NULL, 16 | ylim = NULL, 17 | cex.text = 0.8, 18 | ... 19 | ) 20 | 21 | maageSeq( 22 | object, 23 | compSeq = TRUE, 24 | expl_var = TRUE, 25 | pch = 20, 26 | xlab = "# components", 27 | ylab = ifelse(expl_var, "Explained variance (\%)", "RMSECV"), 28 | xlim = NULL, 29 | ylim = NULL, 30 | cex.text = 0.8, 31 | col = "gray", 32 | col.block = c("red", "blue", "darkgreen", "purple", "black", "red", "blue", 33 | "darkgreen"), 34 | ... 35 | ) 36 | } 37 | \arguments{ 38 | \item{object}{An SO-PLS model (\code{sopls} object)} 39 | 40 | \item{expl_var}{Logical indicating if explained variance (default) or RMSECV should be displayed.} 41 | 42 | \item{pure.trace}{Logical indicating if single block solutions should be traced in the plot.} 43 | 44 | \item{pch}{Scalar or symbol giving plot symbol.} 45 | 46 | \item{xlab}{Label for x-axis.} 47 | 48 | \item{ylab}{Label for y-axis.} 49 | 50 | \item{xlim}{Plot limits for x-axis (numeric vector).} 51 | 52 | \item{ylim}{Plot limits for y-axis (numeric vector).} 53 | 54 | \item{cex.text}{Text scaling (scalar) for better readability of plots.} 55 | 56 | \item{...}{Additional arguments to \code{plot}.} 57 | 58 | \item{compSeq}{Integer vector giving the sequence of previous components chosen for \code{maageSeq} (see example).} 59 | 60 | \item{col}{Line colour in plot.} 61 | 62 | \item{col.block}{Line colours for blocks (default = c('red','blue','darkgreen','purple','black'))} 63 | } 64 | \value{ 65 | The \code{maage} plot has no return. 66 | } 67 | \description{ 68 | Måge plot for SO-PLS (\code{\link{sopls}}) cross-validation visualisation. 69 | } 70 | \details{ 71 | This function can either be used 72 | for global optimisation across blocks or sequential optimisation, using \code{maageSeq}. 73 | The examples below show typical usage. 74 | } 75 | \examples{ 76 | data(wine) 77 | ncomp <- unlist(lapply(wine, ncol))[-5] 78 | so.wine <- sopls(`Global quality` ~ ., data=wine, ncomp=ncomp, 79 | max_comps=10, validation="CV", segments=10) 80 | maage(so.wine) 81 | 82 | # Sequential search for optimal number of components per block 83 | old.par <- par(mfrow=c(2,2), mar=c(3,3,0.5,1), mgp=c(2,0.7,0)) 84 | maageSeq(so.wine) 85 | maageSeq(so.wine, 2) 86 | maageSeq(so.wine, c(2,1)) 87 | maageSeq(so.wine, c(2,1,1)) 88 | par(old.par) 89 | } 90 | \seealso{ 91 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 92 | } 93 | -------------------------------------------------------------------------------- /vignettes/vignette_D_asca.Rmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "D. ASCA" 3 | output: 4 | rmarkdown::html_vignette: 5 | toc: true 6 | vignette: > 7 | %\VignetteIndexEntry{D. ASCA} 8 | %\VignetteEngine{knitr::rmarkdown} 9 | %\VignetteEncoding{UTF-8} 10 | --- 11 | 12 | ```{r, include=FALSE} 13 | knitr::opts_chunk$set( 14 | collapse = TRUE, 15 | comment = "#>", 16 | fig.width=6, 17 | fig.height=4 18 | ) 19 | # Legge denne i YAML på toppen for å skrive ut til tex 20 | #output: 21 | # pdf_document: 22 | # keep_tex: true 23 | # Original: 24 | # rmarkdown::html_vignette: 25 | # toc: true 26 | ``` 27 | 28 | ```{r setup} 29 | library(multiblock) 30 | ``` 31 | 32 | # ANOVA Simultaneous Component Analysis -- ASCA 33 | 34 | The following example uses a simulated dataset for showcasing some of the possibilities of the ASCA method. 35 | 36 | 37 | ## Simulated data 38 | 39 | Two categorical factors and a covariate are simulated together with a standard normal set of 10 responses. 40 | 41 | ```{r cars} 42 | set.seed(1) 43 | dataset <- data.frame(y = I(matrix(rnorm(24*10), ncol = 10)), 44 | x = factor(c(rep(2,8), rep(1,8), rep(0,8))), 45 | z = factor(rep(c(1,0), 12)), w = rnorm(24)) 46 | colnames(dataset$y) <- paste('Var', 1:10, sep = " ") 47 | rownames(dataset) <- paste('Obj', 1:24, sep = " ") 48 | str(dataset) 49 | ``` 50 | 51 | ## Formula interface 52 | 53 | This ASCA implementation uses R's formula interface for model specification. This means that the first argument is a formula with response on the left and design on the right, separated by a tilde operator, e.g. _y ~ x + z_ or _assessment ~ assessor + candy_. The names in the formula refer to variables in a data.frame (or list). Separation with plus (_+_) adds main effects to the model, while separation by stars (_\*_) adds main effects and interactions, e.g. _y ~ x \* z_. Colons (_:_) can be used for explicit interactions, e.g. _y ~ x + z + x:z_. More complicated formulas exist, but only a simple subset is supported by _asca_. 54 | 55 | 56 | ## ASCA modelling 57 | 58 | A basic ASCA model having two factors is fitted and printed as follows. 59 | 60 | ```{r} 61 | mod <- asca(y~x+z, data = dataset) 62 | print(mod) 63 | ``` 64 | 65 | ## Scores 66 | 67 | Scores for first factor are extracted and a scoreplot with confidence ellipsoids is produced. 68 | 69 | ```{r} 70 | sc <- scores(mod) 71 | head(sc) 72 | 73 | scoreplot(mod, legendpos = "topleft", ellipsoids = "confidence") 74 | ``` 75 | 76 | This is repeated for the second factor. 77 | 78 | ```{r} 79 | sc <- scores(mod, factor = "z") 80 | head(sc) 81 | 82 | scoreplot(mod, factor = "z", ellipsoids = "confidence") 83 | ``` 84 | 85 | ## Loadings 86 | 87 | A basic loadingplot for the first factor is generated using graphics from the _pls_ package. 88 | 89 | ```{r} 90 | lo <- loadings(mod) 91 | head(lo) 92 | 93 | loadingplot(mod, scatter = TRUE, labels = 'names') 94 | ``` 95 | 96 | -------------------------------------------------------------------------------- /man/gca.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/unsupervised.R 3 | \name{gca} 4 | \alias{gca} 5 | \title{Generalized Canonical Analysis - GCA} 6 | \usage{ 7 | gca(X, ncomp = "max", svd = TRUE, tol = 10^-12, corrs = TRUE, ...) 8 | } 9 | \arguments{ 10 | \item{X}{\code{list} of input blocks.} 11 | 12 | \item{ncomp}{\code{integer} number of components to extract, either single integer (equal for all blocks), vector (individual per block) or 'max' for maximum possible number of components.} 13 | 14 | \item{svd}{\code{logical} indicating if Singular Value Decomposition approach should be used (default=TRUE).} 15 | 16 | \item{tol}{\code{numeric} tolerance for component inclusion (singular values).} 17 | 18 | \item{corrs}{\code{logical} indicating if correlations should be calculated for RGCCA based approach.} 19 | 20 | \item{...}{additional arguments for RGCCA approach.} 21 | } 22 | \value{ 23 | \code{multiblock} object including relevant scores and loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 24 | and result functions: \code{\link{multiblock_results}}. \code{blockCoef} contains canonical coefficients, while 25 | \code{blockDecomp} contains decompositions of each block. 26 | } 27 | \description{ 28 | This is an interface to both SVD-based (default) and RGCCA-based GCA (wrapping the 29 | \code{RGCCA::rgcca} function) 30 | } 31 | \details{ 32 | GCA is a generalisation of Canonical Correlation Analysis to handle three or more 33 | blocks. There are several ways to generalise, and two of these are available through \code{gca}. 34 | The default is an SVD based approach estimating a common subspace and measuring mean squared 35 | correlation to this. An alternative approach is available through RGCCA. For the SVD based 36 | approach, the \code{ncomp} parameter controls the block-wise decomposition while the following 37 | the consensus decomposition is limited to the minimum number of components from the individual blocks. 38 | } 39 | \examples{ 40 | data(potato) 41 | potList <- as.list(potato[c(1,2,9)]) 42 | pot.gca <- gca(potList) 43 | plot(scores(pot.gca), labels="names") 44 | 45 | } 46 | \references{ 47 | \itemize{ 48 | \item Carroll, J. D. (1968). Generalization of canonical correlation analysis to three or more sets of variables. Proceedings of the American Psychological Association, pages 227-22. 49 | \item Van der Burg, E. and Dijksterhuis, G. (1996). Generalised canonical analysis of individual sensory profiles and instrument data, Elsevier, pp. 221–258. 50 | } 51 | } 52 | \seealso{ 53 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 54 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 55 | } 56 | -------------------------------------------------------------------------------- /man/rosa_plots.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/rosa_plots.R 3 | \name{rosa_plots} 4 | \alias{rosa_plots} 5 | \alias{image.rosa} 6 | \alias{barplot.rosa} 7 | \title{Plotting functions for ROSA models} 8 | \usage{ 9 | \method{image}{rosa}( 10 | x, 11 | type = c("correlation", "residual", "order"), 12 | ncomp = x$ncomp, 13 | col = mcolors(128), 14 | legend = TRUE, 15 | mar = c(5, 6, 4, 7), 16 | las = 1, 17 | ... 18 | ) 19 | 20 | \method{barplot}{rosa}( 21 | height, 22 | type = c("train", "CV"), 23 | ncomp = height$ncomp, 24 | col = mcolors(ncomp), 25 | ... 26 | ) 27 | } 28 | \arguments{ 29 | \item{x}{A \code{rosa} object} 30 | 31 | \item{type}{An optional \code{character} for selecting the plot type. For \code{image.rosa} the options are: "correlation" (default), "residual" or "order". For \code{barplot.rosa} the options indicate: explained variance should be based on training data ("train") or cross-validation ("CV").} 32 | 33 | \item{ncomp}{Integer to control the number of components to plot (if fewer than the fitted number of components).} 34 | 35 | \item{col}{Colours used for the image and bar plot, defaulting to mcolors(128).} 36 | 37 | \item{legend}{Logical indicating if a legend should be included (default = TRUE) for \code{image.rosa}.} 38 | 39 | \item{mar}{Figure margins, default = c(5,6,4,7) for \code{image.rosa}.} 40 | 41 | \item{las}{Axis text direction, default = 1 for \code{image.rosa}.} 42 | 43 | \item{...}{Additional parameters passed to \code{loadingplot}, \code{image}, \code{axis}, \code{color.legend}, or \code{barplot}.} 44 | 45 | \item{height}{A \code{rosa} object.} 46 | } 47 | \value{ 48 | No return. 49 | } 50 | \description{ 51 | Various plotting procedures for \code{\link{rosa}} objects. 52 | } 53 | \details{ 54 | Usage of the functions are shown using generics in the examples below. \code{image.rosa} 55 | makes an image plot of each candidate score's correlation to the winner or the block-wise 56 | response residual. These plots can be used to find alternative block selection for tweaking 57 | the ROSA model. \code{barplot.rosa} makes barplot of block and component explained variances. 58 | \code{loadingweightsplot} is an adaptation of \code{pls::loadingplot} to plot loading weights. 59 | } 60 | \examples{ 61 | data(potato) 62 | mod <- rosa(Sensory[,1] ~ ., data = potato, ncomp = 5) 63 | image(mod) 64 | barplot(mod) 65 | loadingweightplot(mod) 66 | 67 | } 68 | \references{ 69 | Liland, K.H., Næs, T., and Indahl, U.G. (2016). ROSA - a fast extension of partial least squares regression for multiblock data analysis. Journal of Chemometrics, 30, 651–662, doi:10.1002/cem.2824. 70 | } 71 | \seealso{ 72 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 73 | Common functions for computation and extraction of results in \code{\link{rosa_results}}. 74 | } 75 | -------------------------------------------------------------------------------- /R/multiblock-package.R: -------------------------------------------------------------------------------- 1 | #' multiblock 2 | #' 3 | #' @description 4 | #' A collection of methods for analysis of data sets with more than two blocks of data. 5 | #' 6 | #' __Unsupervised methods:__ 7 | #' * SCA - Simultaneous Component Analysis (\code{\link{sca}}) 8 | #' * GCA - Generalized Canonical Analysis (\code{\link{gca}}) 9 | #' * GPA - Generalized Procrustes Analysis (\code{\link{gpa}}) 10 | #' * MFA - Multiple Factor Analysis (\code{\link{mfa}}) 11 | #' * PCA-GCA (\code{\link{pcagca}}) 12 | #' * DISCO - Distinctive and Common Components with SCA (\code{\link{disco}}) 13 | #' * HPCA - Hierarchical Principal component analysis (\code{\link{hpca}}) 14 | #' * MCOA - Multiple Co-Inertia Analysis (\code{\link{mcoa}}) 15 | #' * JIVE - Joint and Individual Variation Explained (\code{\link{jive}}) 16 | #' * STATIS - Structuration des Tableaux à Trois Indices de la Statistique (\code{\link{statis}}) 17 | #' * HOGSVD - Higher Order Generalized SVD (\code{\link{hogsvd}}) 18 | #' 19 | #' __Design based methods:__ 20 | #' * ASCA - Anova Simultaneous Component Analysis (\code{\link{asca}}) 21 | #' 22 | #' __Supervised methods:__ 23 | #' * MB-PLS - Multiblock Partial Least Squares (\code{\link{mbpls}}) 24 | #' * sMB-PLS - Sparse Multiblock Partial Least Squares (\code{\link{smbpls}}) 25 | #' * SO-PLS - Sequential and Orthogonalized PLS (\code{\link{sopls}}) 26 | #' * PO-PLS - Parallel and Orthogonalized PLS (\code{\link{popls}}) 27 | #' * ROSA - Response Oriented Sequential Alternation (\code{\link{rosa}}) 28 | #' * mbRDA - Multiblock Redundancy Analysis (\code{\link{mbrda}}) 29 | #' 30 | #' __Complex methods:__ 31 | #' * L-PLS - Partial Least Squares in L configuration (\code{\link{lpls}}) 32 | #' * SO-PLS-PM - Sequential and Orthogonalised PLS Path Modelling (\code{\link{sopls_pm}}) 33 | #' 34 | #' __Single- and two-block methods:__ 35 | #' * PCA - Principal Component Analysis (\code{\link{pca}}) 36 | #' * PCR - Principal Component Regression (\code{\link{pcr}}) 37 | #' * PLSR - Partial Least Squares Regression (\code{\link{plsr}}) 38 | #' * CCA - Canonical Correlation Analysis (\code{\link{cca}}) 39 | #' * IFA - Interbattery Factor Analysis (\code{\link{ifa}}) 40 | #' * GSVD - Generalized SVD (\code{\link{gsvd}}) 41 | #' 42 | #' __Datasets:__ 43 | #' * Sensory assessment of candies (\code{\link{candies}}) 44 | #' * Sensory, rheological, chemical and spectroscopic analysis of potatoes (\code{\link{potato}}) 45 | #' * Data simulated to have certain characteristics (\code{\link{simulated}}) 46 | #' * Wines of Val de Loire (\code{\link{wine}}) 47 | #' 48 | #' __Utility functions:__ 49 | #' * Block-wise indexable data.frame (\code{\link{block.data.frame}}) 50 | #' * Dummy-code a vector (\code{\link{dummycode}}) 51 | #' 52 | #' @seealso Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 53 | #' @importFrom graphics abline arrows legend 54 | #' @importFrom stats coefficients qf 55 | #' @importFrom utils installed.packages 56 | #' @docType package 57 | #' @name multiblock 58 | #' @keywords internal 59 | "_PACKAGE" 60 | -------------------------------------------------------------------------------- /man/pcagca.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/unsupervised.R 3 | \name{pcagca} 4 | \alias{pcagca} 5 | \title{PCA-GCA} 6 | \usage{ 7 | pcagca( 8 | X, 9 | commons = 2, 10 | auto = TRUE, 11 | auto.par = list(explVarLim = 40, rLim = 0.8), 12 | manual.par = list(ncomp = 0, ncommon = 0), 13 | tol = 10^-12 14 | ) 15 | } 16 | \arguments{ 17 | \item{X}{\code{list} of input blocks} 18 | 19 | \item{commons}{\code{numeric} giving the highest number of blocks to combine when calculating local or common scores.} 20 | 21 | \item{auto}{\code{logical} indicating if automatic choice of complexities should be used.} 22 | 23 | \item{auto.par}{\code{named list} setting limits for automatic choice of complexities.} 24 | 25 | \item{manual.par}{\code{named list} for manual choice of blocks. The list consists of \code{ncomp} which indicates the number of components to extract from each block and \code{ncommon} which is the corresponding for choosing the block combinations (local/common). For the latter, use unique_combos(n_blocks, commons) to see order of local/common blocks. Component numbers will be reduced if simpler models give better predictions. See example.} 26 | 27 | \item{tol}{\code{numeric} tolerance for component inclusion (singular values).} 28 | } 29 | \value{ 30 | \code{multiblock} object including relevant scores and loadings. Relevant plotting functions: \code{\link{multiblock_plots}} 31 | and result functions: \code{\link{multiblock_results}}. Distinct components are marked as 'D(x), Comp c' for block x and component c 32 | while local and common components are marked as "C(x1, x2), Comp c", where x1 and x2 (and more) are block numbers. 33 | } 34 | \description{ 35 | PCA-GCA is a methods which aims at estimating subspaces of common, local and 36 | distinct variation from two or more blocks. 37 | } 38 | \details{ 39 | The name PCA-GCA comes from the process of first applying 40 | PCA to each block, then using GCA to estimate local and common components, and finally 41 | orthogonalising the block-wise scores on the local/common ones and re-estimating these to 42 | obtain distinct components. The procedure is highly similar to the supervised method 43 | PO-PLS, where the PCA steps are exchanged with PLS. 44 | } 45 | \examples{ 46 | data(potato) 47 | potList <- as.list(potato[c(1,2,9)]) 48 | pot.pcagca <- pcagca(potList) 49 | 50 | # Show origin and type of all components 51 | lapply(pot.pcagca$blockScores,colnames) 52 | 53 | # Basic multiblock plot 54 | plot(scores(pot.pcagca, block=2), comps=1, labels="names") 55 | 56 | } 57 | \references{ 58 | Smilde, A., Måge, I., Naes, T., Hankemeier, T.,Lips, M., Kiers, H., Acar, E., and Bro, R.(2017). Common and distinct components in data fusion. Journal of Chemometrics, 31(7), e2900. 59 | } 60 | \seealso{ 61 | Overviews of available methods, \code{\link{multiblock}}, and methods organised by main structure: \code{\link{basic}}, \code{\link{unsupervised}}, \code{\link{asca}}, \code{\link{supervised}} and \code{\link{complex}}. 62 | Common functions for computation and extraction of results and plotting are found in \code{\link{multiblock_results}} and \code{\link{multiblock_plots}}, respectively. 63 | } 64 | --------------------------------------------------------------------------------