├── .nojekyll ├── docs ├── .nojekyll ├── site_libs │ ├── bootstrap │ │ └── bootstrap-icons.woff │ ├── quarto-html │ │ ├── tippy.css │ │ ├── quarto-syntax-highlighting.css │ │ ├── anchor.min.js │ │ └── popper.min.js │ ├── quarto-nav │ │ ├── headroom.min.js │ │ └── quarto-nav.js │ └── clipboard │ │ └── clipboard.min.js ├── search.json ├── project4.html ├── project5.html ├── project1.html ├── index.html ├── welcome.html └── project6.html ├── .DS_Store ├── img └── profile.png ├── .gitignore ├── README.md ├── website-template.Rproj ├── project4.qmd ├── R └── youtube_links.R ├── project5.qmd ├── project1.qmd ├── _quarto.yml ├── project6.qmd ├── project7.qmd ├── project3.qmd ├── welcome.qmd ├── index.qmd ├── notes ├── TuesThursLinks.txt └── MonWedLinks.txt ├── scripts └── automatic-script.ipynb └── project2.qmd /.nojekyll: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtr13/edav2023/main/.DS_Store -------------------------------------------------------------------------------- /img/profile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtr13/edav2023/main/img/profile.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .Rproj.user 2 | .Rhistory 3 | .RData 4 | .Ruserdata 5 | .quarto 6 | /.quarto/ 7 | -------------------------------------------------------------------------------- /docs/site_libs/bootstrap/bootstrap-icons.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtr13/edav2023/main/docs/site_libs/bootstrap/bootstrap-icons.woff -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # edav2023 2 | 3 | *This repo was initially generated from a Quarto template available here: https://github.com/jtr13/website-template.* 4 | -------------------------------------------------------------------------------- /website-template.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | -------------------------------------------------------------------------------- /project4.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "5. Parameter Analysis of Visualization Techniques" 3 | --- 4 | [1. QQ Plots and Sample Quantiles Analysis in R (Mon/Wed)](https://www.youtube.com/watch?v=RKcvdK5DNZU&ab_channel=MartinFluder) 5 | 6 | [2. Deep Dive in Hexagonal Grids (Tues/Thurs)](https://www.youtube.com/watch?v=oUgAx_Fosvg) 7 | 8 | 9 | -------------------------------------------------------------------------------- /R/youtube_links.R: -------------------------------------------------------------------------------- 1 | # Create list of links from CourseWorks submissions 2 | library(rvest) 3 | library(purrr) 4 | path_to_submissions <- "~/Downloads/submissions/" 5 | files <- list.files(path_to_submissions) 6 | a <- map(paste0(path_to_submissions, files), read_html) 7 | links <- map_chr(a, ~.x |> html_element("a") |> html_attr("href")) 8 | writeLines(links, "notes/MonWedLinks.txt") 9 | -------------------------------------------------------------------------------- /project5.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "6. Programming Techniques and Tools" 3 | --- 4 | [1. Using R in Jupyter Notebook in VSCode and Latex (Mon/Wed)](https://youtu.be/B5anK7XBXrg) 5 | 6 | [2. Project Management in R using RProject and Renv (Mon/Wed)](https://www.youtube.com/watch?v=kBkpIck87Ys) 7 | 8 | [3. How to run R and Python in the same Jupyter Notebook using rpy2 (Mon/Wed)](https://www.youtube.com/watch?v=pFi11WIDi0E) 9 | 10 | [4. Functional Programming in R (Tues/Thurs)](https://www.youtube.com/watch?v=AAMZFA-eQM8&ab_channel=emm2293) 11 | 12 | [5. Quick Tips on Speeding up Data Manipulation and Visualization in R (Tues/Thurs)](https://youtu.be/E4M39IxvvtI) 13 | 14 | 15 | -------------------------------------------------------------------------------- /project1.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "1. Data Collection and Preprocessing" 3 | --- 4 | [1. Understanding the grepl() function in R (Mon/Wed)](https://www.youtube.com/watch?v=t5iv84vwrxk) 5 | 6 | [2. Strategies for Handling Missing Data (Mon/Wed)](https://youtu.be/A7GkdSjLL_g) 7 | 8 | [3. Combining Sub-Categories in Dataframes in R with grepl() (Mon/Wed)](https://youtu.be/A8IqvqnkIC4) 9 | 10 | [4. Min-max Scaling in R (Mon/Wed)](https://youtu.be/Oi0P5CT5hS0) 11 | 12 | [5. Web Scraping in R (Tues/Thurs)](https://youtu.be/bAlfTcX2Q8Y) 13 | 14 | [6. Working with Time Zone in R with Lubridate (Tues/Thurs)](https://youtu.be/nLTD8tKimW4) 15 | 16 | [7. Tricks of data cleaning and visualization in R (Tues/Thurs)](https://www.youtube.com/watch?v=cmzpZyz0Os4) 17 | 18 | 19 | -------------------------------------------------------------------------------- /_quarto.yml: -------------------------------------------------------------------------------- 1 | project: 2 | type: website 3 | output-dir: docs 4 | 5 | website: 6 | title: "EDAV Fall 2023 Community Contribution" 7 | repo-url: https://github.com/YOUR_GITHUB_ACCOUNT/REPO_NAME 8 | repo-actions: [edit, issue] 9 | navbar: 10 | tools: 11 | - icon: github 12 | href: https://github.com/jtr13/edav2023 13 | sidebar: 14 | style: "floating" 15 | search: true 16 | contents: 17 | - welcome.qmd 18 | - project1.qmd 19 | - project2.qmd 20 | - project3.qmd 21 | - project7.qmd 22 | - project4.qmd 23 | - project5.qmd 24 | - project6.qmd 25 | page-footer: 26 | right: "Built with [Quarto](https://quarto.org/)" 27 | left: "© Copyright 2023" 28 | back-to-top-navigation: true 29 | 30 | format: 31 | html: 32 | theme: cosmo 33 | toc: true 34 | # code-fold: true 35 | 36 | editor: source 37 | 38 | -------------------------------------------------------------------------------- /project6.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "7. Statistical Analysis and Modelling" 3 | --- 4 | # 1: Time Series Analysis 5 | [1. Time Series Analysis Using Forecast Library (Mon/Wed)](https://youtu.be/iCt8uBjFEjo) 6 | 7 | [2. Introduction to ARIMA, SARIMA and Parameters Selection (Tues/Thurs)](https://youtu.be/qxEn68VXSNo) 8 | 9 | [3. Detecting Outliers in Time Series: 'anomaly', 'tsoutliers', and 'checkresiduals' (Tues/Thurs)](https://youtu.be/ZYdfLpoBVjU) 10 | 11 | 12 | # 2: Miscellaneous 13 | [4. Sentiment Analysis in Tweets about Fast Fashion (Mon/Wed)](https://youtu.be/xk7L7xJhOyQ) 14 | 15 | [5. Causal Inference with Sandwich Package in R (Mon/Wed)](https://youtu.be/r7xCvHttgi0) 16 | 17 | [6. Caret Package for Machine Learning (Tues/Thurs)](https://www.youtube.com/watch?v=WDSP9KGcFAA) 18 | 19 | [7. Correlation between Google keyword searches and stock prices via regression (Tues/Thurs)](https://youtu.be/J8RPf7fpeio) 20 | 21 | [8. Modelling of Body Fat Percentage (Tues/Thurs)](https://youtu.be/UxGtp_KIkL0) 22 | 23 | 24 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-html/tippy.css: -------------------------------------------------------------------------------- 1 | .tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{position:relative;background-color:#333;color:#fff;border-radius:4px;font-size:14px;line-height:1.4;white-space:normal;outline:0;transition-property:transform,visibility,opacity}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{bottom:-7px;left:0;border-width:8px 8px 0;border-top-color:initial;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{top:-7px;left:0;border-width:0 8px 8px;border-bottom-color:initial;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-width:8px 0 8px 8px;border-left-color:initial;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{left:-7px;border-width:8px 8px 8px 0;border-right-color:initial;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{width:16px;height:16px;color:#333}.tippy-arrow:before{content:"";position:absolute;border-color:transparent;border-style:solid}.tippy-content{position:relative;padding:5px 9px;z-index:1} -------------------------------------------------------------------------------- /project7.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "4. Outside of R" 3 | --- 4 | # 1: Geospatial Data Visualization 5 | [1. Relating Impact with Interactive Maps (Mon/Wed)](https://youtu.be/UT_-BeZl2o4) 6 | 7 | [2. A Complete Python Folium Tutorial (Mon/Wed)](https://www.youtube.com/watch?v=Ob0fhtDnFus) 8 | 9 | [3. Map Data Visualization with Folium in Python (Mon/Wed)](https://youtu.be/IDy_6UA9jak) 10 | 11 | [4. Interactive visualization of Earthquakes in Turkey in Python (Tues/Thurs)](https://www.youtube.com/watch?v=-1G16o8fKMU&feature=youtu.be) 12 | 13 | [5. Reducing Spatial Data Redundancies (Tues/Thurs)](https://youtu.be/ykFh3_D8Ors) 14 | 15 | 16 | # 2: Miscellaneous 17 | [6. Streamlit Data Analysis App: StudyStats, a non-coding platform for beginners 18 | (Mon/Wed)](https://youtu.be/gsCIMVdy-Kw) 19 | 20 | [7. Interactive Data Visualizations in Python (Mon/Wed)](https://youtu.be/gWsKyyakkrk) 21 | 22 | [8. Visualizing Demographic Trends with Animated Maps (Mon/Wed)](https://youtu.be/9hB1M4hqCAA) 23 | 24 | [9. Exploratory Analysis and Data Visualization (Mon/Wed)](https://www.youtube.com/watch?v=oU7mhpVZJT8) 25 | 26 | [10. Color Interpolation for Choropleth Maps in Data Wrapper (Tues/Thurs)](https://youtu.be/-83_kmNW-D8) 27 | 28 | [11. Interactive visualization with Plotly in Python (Tues/Thurs)](https://youtu.be/moCIjBGxPzs) 29 | 30 | [12. Efficient Excel Chart Management with VBA Macros (Tues/Thurs)](https://www.youtube.com/watch?v=mc1ON6ATsxU) 31 | 32 | [13. Visualization of Graph Data with Neo4J in Python (Tues/Thurs)](https://youtu.be/cgjVXbSMjho) 33 | 34 | 35 | -------------------------------------------------------------------------------- /project3.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "3. Interactive and Web-based Applications" 3 | --- 4 | # 1: Equisse Package 5 | [1. Easy Data Analysis and Visualization Add-ins in R (Mon/Wed)](https://www.youtube.com/watch?v=gIPY_5m-vRk) 6 | 7 | [2. Data Visualization R Add-ins: Equisse and GGThemeAssist (Tues/Thurs)](https://youtu.be/CpGb063CeWY) 8 | 9 | 10 | # 2: Shiny App 11 | [3. How to make an Interactive Dashboard with Shiny App on R (Mon/Wed)](https://youtu.be/UG6QibAflRs) 12 | 13 | [4. Introducing Shiny Package in R - Interactive Web Dashboard (Mon/Wed)](https://www.youtube.com/watch?v=FIr5wMAn2ow) 14 | 15 | [5. RShiny: Overview, Reactives, How it helps (Mon/Wed)](https://youtu.be/8Z1me5ebCUw) 16 | 17 | [6. Introduction to Features of Shiny App (Tues/Thurs)](https://youtu.be/eCsZs-pqy3M) 18 | 19 | [7. Outlier Detection App with Shiny App (Tues/Thurs)](https://youtu.be/cmJrHpFYh1U) 20 | 21 | [8. Interactive Linear Regression Model App with Shiny App (Tues/Thurs)](https://youtu.be/eMwM3gXQ5Xg) 22 | 23 | 24 | # 3: Miscellaneous 25 | [9. Implementing Interactive Filters in R (Mon/Wed)](https://www.loom.com/share/0ba371f62d884042bdf1288d1fca926e) 26 | 27 | [10. Interactive Dashboard Creation in R (Mon/Wed)](https://youtu.be/szwG8L-Eyc4) 28 | 29 | [11. Understanding Interactive 2D Splines (Mon/Wed)](https://youtu.be/Nm2oT09uSA0) 30 | 31 | [12. Embedding Visualizations into Web Apps with R (Mon/Wed)](https://www.youtube.com/watch?v=8j3ttwrtASE) 32 | 33 | [13. Quick Interactive Data Visualization with GGplot and GGRapture (Tues/Thurs)](https://www.youtube.com/watch?v=Lod_XBetQ5g) 34 | 35 | 36 | -------------------------------------------------------------------------------- /welcome.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Welcome!" 3 | --- 4 | 5 | This webpage contains community contributions for Fall 2023 EDAV class at Columbia University. 6 | 7 | There are 108 videos in total that are divided into 7 categories. 8 | 9 | For the final project, you’re welcome to first check out “[1. Data Collection and Preprocessing](https://jtr13.github.io/edav2023/project1.html)” and “[2. Data Visualization Techniques](https://jtr13.github.io/edav2023/project2.html)”, as these are all videos about the basic graphs, skills, and packages in R that are within the scope of the final project. There are also several subcategories in each of them. 10 | 11 | Other categories cover more advanced skills, which may be outside the scope of the final project but are still extremely interesting, useful, and insightful! 12 | 13 | “[3. Interactive and Web-based Applications](https://jtr13.github.io/edav2023/project3.html)”: Using Shiny App in R to create interactive online dashboards 14 | 15 | “[4. Outside of R](https://jtr13.github.io/edav2023/project7.html)”: Data visualization techniques outside of R, most of which are in Python 16 | 17 | “[5. Parameter Analysis of Visualization Techniques](https://jtr13.github.io/edav2023/project4.html)”: Dives into the mathematical foundation behind visualization techniques 18 | 19 | “[6. Programming Techniques and Tools](https://jtr13.github.io/edav2023/project5.html)”: Diverse programming techniques ranging from speeding up codes in R to integrating R with VSCode and Latex 20 | 21 | “[7. Statistical Analysis and Modeling](https://jtr13.github.io/edav2023/project6.html)”: Machine learning, modeling, and inference in R 22 | -------------------------------------------------------------------------------- /index.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "Welcome!" 3 | # about: 4 | # id: me 5 | # template: broadside 6 | # image: img/profile.png 7 | # github-repo: jtr13/edav2023 8 | 9 | --- 10 | 11 | This webpage contains community contributions for Fall 2023 EDAV class at Columbia University. 12 | 13 | There are 108 videos in total that are divided into 7 categories. 14 | 15 | For the final project, you’re welcome to first check out “[1. Data Collection and Preprocessing](https://jtr13.github.io/edav2023/project1.html)” and “[2. Data Visualization Techniques](https://jtr13.github.io/edav2023/project2.html)”, as these are all videos about the basic graphs, skills, and packages in R that are within the scope of the final project. There are also several subcategories in each of them. 16 | 17 | Other categories cover more advanced skills, which may be outside the scope of the final project but are still extremely interesting, useful, and insightful! 18 | 19 | “[3. Interactive and Web-based Applications](https://jtr13.github.io/edav2023/project3.html)”: Using Shiny App in R to create interactive online dashboards 20 | 21 | “[4. Outside of R](https://jtr13.github.io/edav2023/project7.html)”: Data visualization techniques outside of R, most of which are in Python 22 | 23 | “[5. Parameter Analysis of Visualization Techniques](https://jtr13.github.io/edav2023/project4.html)”: Dives into the mathematical foundation behind visualization techniques 24 | 25 | “[6. Programming Techniques and Tools](https://jtr13.github.io/edav2023/project5.html)”: Diverse programming techniques ranging from speeding up codes in R to integrating R with VSCode and Latex 26 | 27 | “[7. Statistical Analysis and Modeling](https://jtr13.github.io/edav2023/project6.html)”: Machine learning, modeling, and inference in R 28 | 29 | -------------------------------------------------------------------------------- /notes/TuesThursLinks.txt: -------------------------------------------------------------------------------- 1 | https://youtu.be/bAlfTcX2Q8Y 2 | https://youtu.be/jLz0sf-UWug 3 | https://youtu.be/-83_kmNW-D8 4 | https://youtu.be/ui8R4zbRgo8 5 | https://youtu.be/CpGb063CeWY 6 | https://youtu.be/NqDyeAsKUm8 7 | https://youtu.be/nLTD8tKimW4 8 | https://youtu.be/8lsHGKUn8A0 9 | https://youtu.be/eCsZs-pqy3M 10 | https://youtu.be/qxEn68VXSNo 11 | https://youtu.be/ZYdfLpoBVjU 12 | https://youtu.be/cmJrHpFYh1U 13 | https://youtu.be/A-il70GvkkM 14 | https://www.youtube.com/watch?v=bLQfqMvSh3g 15 | https://youtu.be/wsrGQPPPmN4 16 | https://youtu.be/eMwM3gXQ5Xg 17 | https://www.youtube.com/watch?v=WDSP9KGcFAA 18 | https://youtu.be/8Ktp7bOyGNg 19 | https://www.youtube.com/watch?v=tikmXPmjig8 20 | https://www.youtube.com/watch?v=rp4ahQtkXrM&ab_channel=YelamanSain 21 | https://www.youtube.com/watch?v=7UHCfWN96d0 22 | https://www.youtube.com/watch?v=AAMZFA-eQM8&ab_channel=emm2293 23 | https://youtu.be/E4M39IxvvtI 24 | https://www.youtube.com/watch?v=IM6cCHPoP38&ab_channel=AustinSchaefer 25 | https://youtu.be/EaNv8NVBc_Q 26 | https://youtu.be/7qcQgLN8TnM 27 | https://youtu.be/mIg_5rwmGfo 28 | https://youtu.be/moCIjBGxPzs 29 | https://www.youtube.com/watch?v=-1G16o8fKMU&feature=youtu.be 30 | https://youtu.be/cs6Mb3Kv7rA 31 | https://youtu.be/ykFh3_D8Ors 32 | https://youtu.be/J8RPf7fpeio 33 | https://youtu.be/PhbY_ovIQIw 34 | https://www.youtube.com/watch?v=mc1ON6ATsxU 35 | https://youtu.be/SL9gkcZjGx4 36 | https://youtu.be/xjwiaVM0G9A 37 | https://youtu.be/06sfnL8TpOI 38 | https://youtu.be/cgjVXbSMjho 39 | https://youtu.be/71zl39yzwXM 40 | https://www.youtube.com/watch?v=KrwS10RStbw 41 | https://www.youtube.com/watch?v=oUgAx_Fosvg 42 | https://youtu.be/-hutMwiLO7A 43 | https://youtu.be/HTh5e7v54uM 44 | https://youtu.be/SNbqdJmqtAw 45 | https://youtu.be/UxGtp_KIkL0 46 | https://www.youtube.com/watch?v=Lod_XBetQ5g 47 | https://studio.youtube.com/video/xj4HCy5Y3Yg/edit 48 | https://youtu.be/PWqMcgbISFI 49 | https://youtu.be/gFOugJLtkF8 50 | https://www.youtube.com/watch?v=cmzpZyz0Os4 51 | -------------------------------------------------------------------------------- /notes/MonWedLinks.txt: -------------------------------------------------------------------------------- 1 | https://youtu.be/gsCIMVdy-Kw 2 | https://youtu.be/GPHgiqD2XfE 3 | https://www.youtube.com/watch?v=t5iv84vwrxk 4 | https://youtu.be/UG6QibAflRs 5 | https://www.loom.com/share/0ba371f62d884042bdf1288d1fca926e 6 | https://www.youtube.com/watch?v=9wtvJz82oSw 7 | https://youtu.be/UT_-BeZl2o4 8 | https://youtu.be/B5anK7XBXrg 9 | https://youtu.be/dCl9tISXSSQ 10 | https://www.youtube.com/watch?v=FIr5wMAn2ow 11 | https://youtu.be/87ZuiR7SrfA 12 | https://youtu.be/fyHNWSkcYpk 13 | https://www.youtube.com/watch?v=gM8yz6P7V0A 14 | https://youtu.be/iCt8uBjFEjo 15 | https://youtu.be/szwG8L-Eyc4 16 | https://youtu.be/8Z1me5ebCUw 17 | https://www.youtube.com/watch?v=Ob0fhtDnFus 18 | https://www.youtube.com/watch?v=kBkpIck87Ys 19 | https://youtu.be/xk7L7xJhOyQ 20 | https://youtu.be/Nm2oT09uSA0 21 | https://youtu.be/tpl4TEVOHCI 22 | https://www.youtube.com/watch?v=nNI4SeSLgN0 23 | https://youtu.be/s5ehRahj2pM?feature=shared 24 | https://youtu.be/PudGAzRal_4 25 | https://www.youtube.com/watch?v=USw2AECFIkw 26 | https://www.youtube.com/watch?v=40MokoiI3Aw 27 | https://youtu.be/aG7t5I2zk9E 28 | https://youtu.be/A7GkdSjLL_g 29 | https://www.youtube.com/watch?v=6k39xguz4js 30 | https://youtu.be/tbmGq7_TM-4 31 | https://youtu.be/mslzLw5v738 32 | https://youtu.be/xs0cGbjoseE 33 | https://youtu.be/3RkNs3cyHlU 34 | https://youtu.be/IDy_6UA9jak 35 | https://www.youtube.com/watch?v=gIPY_5m-vRk 36 | https://youtu.be/ZAyUFSky0N8 37 | https://www.youtube.com/watch?v=8j3ttwrtASE 38 | https://drive.google.com/file/d/15vGCwVp3WpW1bFwdP_prFg1zRozqYERK/view?usp=sharing 39 | https://www.youtube.com/watch?v=RKcvdK5DNZU&ab_channel=MartinFluder 40 | https://youtu.be/r7xCvHttgi0 41 | https://youtu.be/BmxpApzmpqE 42 | https://www.youtube.com/watch?v=LG10EWIpCD4 43 | https://youtu.be/gWsKyyakkrk 44 | https://youtu.be/n43RMdALxvc 45 | https://youtu.be/A8IqvqnkIC4 46 | https://youtu.be/nI1XMoUHn0o 47 | https://www.youtube.com/watch?v=FdzTsrCvdkk 48 | https://youtu.be/Oi0P5CT5hS0 49 | https://youtu.be/BVLzry9EBGY 50 | https://youtu.be/Q06kLBNwGc8 51 | https://youtu.be/1DR7mgeZuKE 52 | https://www.youtube.com/watch?v=aUJAHXfVrnw 53 | https://www.youtube.com/watch?v=jmLVh4yy58Y 54 | https://youtu.be/9hB1M4hqCAA 55 | https://youtu.be/JV1eIjZ2EPA 56 | https://www.youtube.com/watch?v=pFi11WIDi0E 57 | https://www.youtube.com/watch?v=U6-6sXRUwoI 58 | https://www.youtube.com/watch?v=oU7mhpVZJT8 59 | https://youtu.be/bQ6XQiVKSGU 60 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-html/quarto-syntax-highlighting.css: -------------------------------------------------------------------------------- 1 | /* quarto syntax highlight colors */ 2 | :root { 3 | --quarto-hl-ot-color: #003B4F; 4 | --quarto-hl-at-color: #657422; 5 | --quarto-hl-ss-color: #20794D; 6 | --quarto-hl-an-color: #5E5E5E; 7 | --quarto-hl-fu-color: #4758AB; 8 | --quarto-hl-st-color: #20794D; 9 | --quarto-hl-cf-color: #003B4F; 10 | --quarto-hl-op-color: #5E5E5E; 11 | --quarto-hl-er-color: #AD0000; 12 | --quarto-hl-bn-color: #AD0000; 13 | --quarto-hl-al-color: #AD0000; 14 | --quarto-hl-va-color: #111111; 15 | --quarto-hl-bu-color: inherit; 16 | --quarto-hl-ex-color: inherit; 17 | --quarto-hl-pp-color: #AD0000; 18 | --quarto-hl-in-color: #5E5E5E; 19 | --quarto-hl-vs-color: #20794D; 20 | --quarto-hl-wa-color: #5E5E5E; 21 | --quarto-hl-do-color: #5E5E5E; 22 | --quarto-hl-im-color: #00769E; 23 | --quarto-hl-ch-color: #20794D; 24 | --quarto-hl-dt-color: #AD0000; 25 | --quarto-hl-fl-color: #AD0000; 26 | --quarto-hl-co-color: #5E5E5E; 27 | --quarto-hl-cv-color: #5E5E5E; 28 | --quarto-hl-cn-color: #8f5902; 29 | --quarto-hl-sc-color: #5E5E5E; 30 | --quarto-hl-dv-color: #AD0000; 31 | --quarto-hl-kw-color: #003B4F; 32 | } 33 | 34 | /* other quarto variables */ 35 | :root { 36 | --quarto-font-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; 37 | } 38 | 39 | pre > code.sourceCode > span { 40 | color: #003B4F; 41 | } 42 | 43 | code span { 44 | color: #003B4F; 45 | } 46 | 47 | code.sourceCode > span { 48 | color: #003B4F; 49 | } 50 | 51 | div.sourceCode, 52 | div.sourceCode pre.sourceCode { 53 | color: #003B4F; 54 | } 55 | 56 | code span.ot { 57 | color: #003B4F; 58 | font-style: inherit; 59 | } 60 | 61 | code span.at { 62 | color: #657422; 63 | font-style: inherit; 64 | } 65 | 66 | code span.ss { 67 | color: #20794D; 68 | font-style: inherit; 69 | } 70 | 71 | code span.an { 72 | color: #5E5E5E; 73 | font-style: inherit; 74 | } 75 | 76 | code span.fu { 77 | color: #4758AB; 78 | font-style: inherit; 79 | } 80 | 81 | code span.st { 82 | color: #20794D; 83 | font-style: inherit; 84 | } 85 | 86 | code span.cf { 87 | color: #003B4F; 88 | font-style: inherit; 89 | } 90 | 91 | code span.op { 92 | color: #5E5E5E; 93 | font-style: inherit; 94 | } 95 | 96 | code span.er { 97 | color: #AD0000; 98 | font-style: inherit; 99 | } 100 | 101 | code span.bn { 102 | color: #AD0000; 103 | font-style: inherit; 104 | } 105 | 106 | code span.al { 107 | color: #AD0000; 108 | font-style: inherit; 109 | } 110 | 111 | code span.va { 112 | color: #111111; 113 | font-style: inherit; 114 | } 115 | 116 | code span.bu { 117 | font-style: inherit; 118 | } 119 | 120 | code span.ex { 121 | font-style: inherit; 122 | } 123 | 124 | code span.pp { 125 | color: #AD0000; 126 | font-style: inherit; 127 | } 128 | 129 | code span.in { 130 | color: #5E5E5E; 131 | font-style: inherit; 132 | } 133 | 134 | code span.vs { 135 | color: #20794D; 136 | font-style: inherit; 137 | } 138 | 139 | code span.wa { 140 | color: #5E5E5E; 141 | font-style: italic; 142 | } 143 | 144 | code span.do { 145 | color: #5E5E5E; 146 | font-style: italic; 147 | } 148 | 149 | code span.im { 150 | color: #00769E; 151 | font-style: inherit; 152 | } 153 | 154 | code span.ch { 155 | color: #20794D; 156 | font-style: inherit; 157 | } 158 | 159 | code span.dt { 160 | color: #AD0000; 161 | font-style: inherit; 162 | } 163 | 164 | code span.fl { 165 | color: #AD0000; 166 | font-style: inherit; 167 | } 168 | 169 | code span.co { 170 | color: #5E5E5E; 171 | font-style: inherit; 172 | } 173 | 174 | code span.cv { 175 | color: #5E5E5E; 176 | font-style: italic; 177 | } 178 | 179 | code span.cn { 180 | color: #8f5902; 181 | font-style: inherit; 182 | } 183 | 184 | code span.sc { 185 | color: #5E5E5E; 186 | font-style: inherit; 187 | } 188 | 189 | code span.dv { 190 | color: #AD0000; 191 | font-style: inherit; 192 | } 193 | 194 | code span.kw { 195 | color: #003B4F; 196 | font-style: inherit; 197 | } 198 | 199 | .prevent-inlining { 200 | content: "s.tolerance[a.direction],e(a),l=t,i=!1}function h(){i||(i=!0,n=requestAnimationFrame(c))}var u=!!o&&{passive:!0,capture:!1};return t.addEventListener("scroll",h,u),c(),{destroy:function(){cancelAnimationFrame(n),t.removeEventListener("scroll",h,u)}}}function o(t){return t===Object(t)?t:{down:t,up:t}}function s(t,n){n=n||{},Object.assign(this,s.options,n),this.classes=Object.assign({},s.options.classes,n.classes),this.elem=t,this.tolerance=o(this.tolerance),this.offset=o(this.offset),this.initialised=!1,this.frozen=!1}return s.prototype={constructor:s,init:function(){return s.cutsTheMustard&&!this.initialised&&(this.addClass("initial"),this.initialised=!0,setTimeout(function(t){t.scrollTracker=n(t.scroller,{offset:t.offset,tolerance:t.tolerance},t.update.bind(t))},100,this)),this},destroy:function(){this.initialised=!1,Object.keys(this.classes).forEach(this.removeClass,this),this.scrollTracker.destroy()},unpin:function(){!this.hasClass("pinned")&&this.hasClass("unpinned")||(this.addClass("unpinned"),this.removeClass("pinned"),this.onUnpin&&this.onUnpin.call(this))},pin:function(){this.hasClass("unpinned")&&(this.addClass("pinned"),this.removeClass("unpinned"),this.onPin&&this.onPin.call(this))},freeze:function(){this.frozen=!0,this.addClass("frozen")},unfreeze:function(){this.frozen=!1,this.removeClass("frozen")},top:function(){this.hasClass("top")||(this.addClass("top"),this.removeClass("notTop"),this.onTop&&this.onTop.call(this))},notTop:function(){this.hasClass("notTop")||(this.addClass("notTop"),this.removeClass("top"),this.onNotTop&&this.onNotTop.call(this))},bottom:function(){this.hasClass("bottom")||(this.addClass("bottom"),this.removeClass("notBottom"),this.onBottom&&this.onBottom.call(this))},notBottom:function(){this.hasClass("notBottom")||(this.addClass("notBottom"),this.removeClass("bottom"),this.onNotBottom&&this.onNotBottom.call(this))},shouldUnpin:function(t){return"down"===t.direction&&!t.top&&t.toleranceExceeded},shouldPin:function(t){return"up"===t.direction&&t.toleranceExceeded||t.top},addClass:function(t){this.elem.classList.add.apply(this.elem.classList,this.classes[t].split(" "))},removeClass:function(t){this.elem.classList.remove.apply(this.elem.classList,this.classes[t].split(" "))},hasClass:function(t){return this.classes[t].split(" ").every(function(t){return this.classList.contains(t)},this.elem)},update:function(t){t.isOutOfBounds||!0!==this.frozen&&(t.top?this.top():this.notTop(),t.bottom?this.bottom():this.notBottom(),this.shouldUnpin(t)?this.unpin():this.shouldPin(t)&&this.pin())}},s.options={tolerance:{up:0,down:0},offset:0,scroller:t()?window:null,classes:{frozen:"headroom--frozen",pinned:"headroom--pinned",unpinned:"headroom--unpinned",top:"headroom--top",notTop:"headroom--not-top",bottom:"headroom--bottom",notBottom:"headroom--not-bottom",initial:"headroom"}},s.cutsTheMustard=!!(t()&&function(){}.bind&&"classList"in document.documentElement&&Object.assign&&Object.keys&&requestAnimationFrame),s}); 8 | -------------------------------------------------------------------------------- /scripts/automatic-script.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 11, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pandas as pd\n", 10 | "import numpy as np" 11 | ] 12 | }, 13 | { 14 | "cell_type": "code", 15 | "execution_count": 12, 16 | "metadata": {}, 17 | "outputs": [], 18 | "source": [ 19 | "links = pd.read_csv('links-spreadsheet.csv')" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": 13, 25 | "metadata": {}, 26 | "outputs": [ 27 | { 28 | "name": "stdout", 29 | "output_type": "stream", 30 | "text": [ 31 | "109\n" 32 | ] 33 | } 34 | ], 35 | "source": [ 36 | "print(len(links.index))" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": 14, 42 | "metadata": {}, 43 | "outputs": [], 44 | "source": [ 45 | "df = links[['Section','Links','Main Category','Sub Category','Title']]\n", 46 | "df = df.dropna(subset=['Main Category'])" 47 | ] 48 | }, 49 | { 50 | "cell_type": "code", 51 | "execution_count": 15, 52 | "metadata": {}, 53 | "outputs": [], 54 | "source": [ 55 | "df.head(3)\n", 56 | "category_list = list(set(df['Main Category'].to_list()))" 57 | ] 58 | }, 59 | { 60 | "cell_type": "code", 61 | "execution_count": 16, 62 | "metadata": {}, 63 | "outputs": [ 64 | { 65 | "name": "stdout", 66 | "output_type": "stream", 67 | "text": [ 68 | "['Interactive and Web-based Applications', 'Programming Techniques and Tools', 'Parameter Analysis of Visualization Techniques', 'Data Visualization Techniques', 'Data Collection and Preprocessing', 'Outside of R', 'Statistical Analysis and Modelling']\n" 69 | ] 70 | } 71 | ], 72 | "source": [ 73 | "print(category_list)" 74 | ] 75 | }, 76 | { 77 | "cell_type": "code", 78 | "execution_count": 17, 79 | "metadata": {}, 80 | "outputs": [], 81 | "source": [ 82 | "df1 = df[df[\"Main Category\"] == \"Data Collection and Preprocessing\"]" 83 | ] 84 | }, 85 | { 86 | "cell_type": "code", 87 | "execution_count": 18, 88 | "metadata": {}, 89 | "outputs": [], 90 | "source": [ 91 | "df1.head(10)\n", 92 | "subcategory_list1 = list(set(df1['Sub Category'].to_list()))" 93 | ] 94 | }, 95 | { 96 | "cell_type": "code", 97 | "execution_count": 19, 98 | "metadata": {}, 99 | "outputs": [ 100 | { 101 | "name": "stdout", 102 | "output_type": "stream", 103 | "text": [ 104 | "['Miscellaneous']\n" 105 | ] 106 | } 107 | ], 108 | "source": [ 109 | "print(subcategory_list1)" 110 | ] 111 | }, 112 | { 113 | "cell_type": "code", 114 | "execution_count": 20, 115 | "metadata": {}, 116 | "outputs": [], 117 | "source": [ 118 | "category_list = sorted(category_list)\n", 119 | "category_list.append(category_list.pop(category_list.index('Outside of R')))\n", 120 | "\n", 121 | "for cat_nb in range(len(category_list)):\n", 122 | " main_category = category_list[cat_nb]\n", 123 | " df1 = df[df[\"Main Category\"] == main_category]\n", 124 | "\n", 125 | " with open(f'project{cat_nb+1}.qmd', 'w') as f: #projecti.qmd\n", 126 | " link_nb = 1\n", 127 | " f.write(\"---\\n\")\n", 128 | " f.write(f\"title: \\\"{main_category}\\\"\\n\")\n", 129 | " f.write(\"---\\n\")\n", 130 | "\n", 131 | " subcategory_list1 = list(set(df1['Sub Category'].to_list()))\n", 132 | "\n", 133 | " # try:\n", 134 | " subcategory_list1.append(subcategory_list1.pop(subcategory_list1.index('Miscellaneous')))\n", 135 | " \n", 136 | "\n", 137 | " for sub_nb, subcategory in enumerate(subcategory_list1):\n", 138 | " df1_sub = df1[df1[\"Sub Category\"] == subcategory]\n", 139 | " if len(subcategory_list1) > 1:\n", 140 | " f.write(f\"# Subcategory {sub_nb + 1}: {subcategory}\\n\")\n", 141 | " for video_nb in range(len(df1_sub['Title'].to_list())):\n", 142 | " # print(len(df1_sub['Title'].to_list()))\n", 143 | " title = df1_sub['Title'].to_list()\n", 144 | " section = df1_sub['Section'].to_list()\n", 145 | " links = df1_sub['Links'].to_list()\n", 146 | " f.write(f\"[{link_nb}. {title[video_nb]} ({section[video_nb]})]({links[video_nb]})\\n\\n\")\n", 147 | " link_nb += 1\n", 148 | " f.write(\"\\n\")\n", 149 | " " 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": 21, 155 | "metadata": {}, 156 | "outputs": [ 157 | { 158 | "data": { 159 | "text/plain": [ 160 | "8" 161 | ] 162 | }, 163 | "execution_count": 21, 164 | "metadata": {}, 165 | "output_type": "execute_result" 166 | } 167 | ], 168 | "source": [ 169 | "len(df1_sub['Title'].to_list())" 170 | ] 171 | } 172 | ], 173 | "metadata": { 174 | "kernelspec": { 175 | "display_name": "web-scraping", 176 | "language": "python", 177 | "name": "python3" 178 | }, 179 | "language_info": { 180 | "codemirror_mode": { 181 | "name": "ipython", 182 | "version": 3 183 | }, 184 | "file_extension": ".py", 185 | "mimetype": "text/x-python", 186 | "name": "python", 187 | "nbconvert_exporter": "python", 188 | "pygments_lexer": "ipython3", 189 | "version": "3.11.5" 190 | }, 191 | "orig_nbformat": 4 192 | }, 193 | "nbformat": 4, 194 | "nbformat_minor": 2 195 | } 196 | -------------------------------------------------------------------------------- /docs/site_libs/quarto-html/anchor.min.js: -------------------------------------------------------------------------------- 1 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat 2 | // 3 | // AnchorJS - v4.3.1 - 2021-04-17 4 | // https://www.bryanbraun.com/anchorjs/ 5 | // Copyright (c) 2021 Bryan Braun; Licensed MIT 6 | // 7 | // @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt Expat 8 | !function(A,e){"use strict";"function"==typeof define&&define.amd?define([],e):"object"==typeof module&&module.exports?module.exports=e():(A.AnchorJS=e(),A.anchors=new A.AnchorJS)}(this,function(){"use strict";return function(A){function d(A){A.icon=Object.prototype.hasOwnProperty.call(A,"icon")?A.icon:"",A.visible=Object.prototype.hasOwnProperty.call(A,"visible")?A.visible:"hover",A.placement=Object.prototype.hasOwnProperty.call(A,"placement")?A.placement:"right",A.ariaLabel=Object.prototype.hasOwnProperty.call(A,"ariaLabel")?A.ariaLabel:"Anchor",A.class=Object.prototype.hasOwnProperty.call(A,"class")?A.class:"",A.base=Object.prototype.hasOwnProperty.call(A,"base")?A.base:"",A.truncate=Object.prototype.hasOwnProperty.call(A,"truncate")?Math.floor(A.truncate):64,A.titleText=Object.prototype.hasOwnProperty.call(A,"titleText")?A.titleText:""}function w(A){var e;if("string"==typeof A||A instanceof String)e=[].slice.call(document.querySelectorAll(A));else{if(!(Array.isArray(A)||A instanceof NodeList))throw new TypeError("The selector provided to AnchorJS was invalid.");e=[].slice.call(A)}return e}this.options=A||{},this.elements=[],d(this.options),this.isTouchDevice=function(){return Boolean("ontouchstart"in window||window.TouchEvent||window.DocumentTouch&&document instanceof DocumentTouch)},this.add=function(A){var e,t,o,i,n,s,a,c,r,l,h,u,p=[];if(d(this.options),"touch"===(l=this.options.visible)&&(l=this.isTouchDevice()?"always":"hover"),0===(e=w(A=A||"h2, h3, h4, h5, h6")).length)return this;for(null===document.head.querySelector("style.anchorjs")&&((u=document.createElement("style")).className="anchorjs",u.appendChild(document.createTextNode("")),void 0===(A=document.head.querySelector('[rel="stylesheet"],style'))?document.head.appendChild(u):document.head.insertBefore(u,A),u.sheet.insertRule(".anchorjs-link{opacity:0;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}",u.sheet.cssRules.length),u.sheet.insertRule(":hover>.anchorjs-link,.anchorjs-link:focus{opacity:1}",u.sheet.cssRules.length),u.sheet.insertRule("[data-anchorjs-icon]::after{content:attr(data-anchorjs-icon)}",u.sheet.cssRules.length),u.sheet.insertRule('@font-face{font-family:anchorjs-icons;src:url(data:n/a;base64,AAEAAAALAIAAAwAwT1MvMg8yG2cAAAE4AAAAYGNtYXDp3gC3AAABpAAAAExnYXNwAAAAEAAAA9wAAAAIZ2x5ZlQCcfwAAAH4AAABCGhlYWQHFvHyAAAAvAAAADZoaGVhBnACFwAAAPQAAAAkaG10eASAADEAAAGYAAAADGxvY2EACACEAAAB8AAAAAhtYXhwAAYAVwAAARgAAAAgbmFtZQGOH9cAAAMAAAAAunBvc3QAAwAAAAADvAAAACAAAQAAAAEAAHzE2p9fDzz1AAkEAAAAAADRecUWAAAAANQA6R8AAAAAAoACwAAAAAgAAgAAAAAAAAABAAADwP/AAAACgAAA/9MCrQABAAAAAAAAAAAAAAAAAAAAAwABAAAAAwBVAAIAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAMCQAGQAAUAAAKZAswAAACPApkCzAAAAesAMwEJAAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAQAAg//0DwP/AAEADwABAAAAAAQAAAAAAAAAAAAAAIAAAAAAAAAIAAAACgAAxAAAAAwAAAAMAAAAcAAEAAwAAABwAAwABAAAAHAAEADAAAAAIAAgAAgAAACDpy//9//8AAAAg6cv//f///+EWNwADAAEAAAAAAAAAAAAAAAAACACEAAEAAAAAAAAAAAAAAAAxAAACAAQARAKAAsAAKwBUAAABIiYnJjQ3NzY2MzIWFxYUBwcGIicmNDc3NjQnJiYjIgYHBwYUFxYUBwYGIwciJicmNDc3NjIXFhQHBwYUFxYWMzI2Nzc2NCcmNDc2MhcWFAcHBgYjARQGDAUtLXoWOR8fORYtLTgKGwoKCjgaGg0gEhIgDXoaGgkJBQwHdR85Fi0tOAobCgoKOBoaDSASEiANehoaCQkKGwotLXoWOR8BMwUFLYEuehYXFxYugC44CQkKGwo4GkoaDQ0NDXoaShoKGwoFBe8XFi6ALjgJCQobCjgaShoNDQ0NehpKGgobCgoKLYEuehYXAAAADACWAAEAAAAAAAEACAAAAAEAAAAAAAIAAwAIAAEAAAAAAAMACAAAAAEAAAAAAAQACAAAAAEAAAAAAAUAAQALAAEAAAAAAAYACAAAAAMAAQQJAAEAEAAMAAMAAQQJAAIABgAcAAMAAQQJAAMAEAAMAAMAAQQJAAQAEAAMAAMAAQQJAAUAAgAiAAMAAQQJAAYAEAAMYW5jaG9yanM0MDBAAGEAbgBjAGgAbwByAGoAcwA0ADAAMABAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAH//wAP) format("truetype")}',u.sheet.cssRules.length)),u=document.querySelectorAll("[id]"),t=[].map.call(u,function(A){return A.id}),i=0;i\]./()*\\\n\t\b\v\u00A0]/g,"-").replace(/-{2,}/g,"-").substring(0,this.options.truncate).replace(/^-+|-+$/gm,"").toLowerCase()},this.hasAnchorJSLink=function(A){var e=A.firstChild&&-1<(" "+A.firstChild.className+" ").indexOf(" anchorjs-link "),A=A.lastChild&&-1<(" "+A.lastChild.className+" ").indexOf(" anchorjs-link ");return e||A||!1}}}); 9 | // @license-end -------------------------------------------------------------------------------- /project2.qmd: -------------------------------------------------------------------------------- 1 | --- 2 | title: "2. Data Visualization Techniques" 3 | --- 4 | # 1: Plot Types and Techniques 5 | [1. Creating Scatter Plots with Boundaries in R (Mon/Wed)](https://youtu.be/dCl9tISXSSQ) 6 | 7 | [2. Interactive Heatmap Visualization in Montgomery County with R Shiny (Mon/Wed)](https://www.youtube.com/watch?v=nNI4SeSLgN0) 8 | 9 | [3. HexMaps: Understanding the Y-axis (Mon/Wed)](https://youtu.be/mslzLw5v738) 10 | 11 | [4. Sorting Boxplots and Barplots in R (Mon/Wed)](https://youtu.be/3RkNs3cyHlU) 12 | 13 | [5. Comparison between Geom_Mosaic and Vcd::Mosaic (Mon/Wed)](https://drive.google.com/file/d/15vGCwVp3WpW1bFwdP_prFg1zRozqYERK/view?usp=sharing) 14 | 15 | [6. Unemployment Heatmaps with R and Python (Mon/Wed)](https://youtu.be/BVLzry9EBGY) 16 | 17 | [7. Comparison Between Population Pyramid and Violin Plot (Mon/Wed)](https://www.youtube.com/watch?v=jmLVh4yy58Y) 18 | 19 | [8. Common Uses of Heatmap (Tues/Thurs)](https://youtu.be/mIg_5rwmGfo) 20 | 21 | [9. Heatmaps in R (Tues/Thurs)](https://youtu.be/06sfnL8TpOI) 22 | 23 | [10. Interactive Scatterplots with Highcharter Package in R (Tues/Thurs)](https://youtu.be/SNbqdJmqtAw) 24 | 25 | 26 | # 2: Interactive and Dynamic Visualizations 27 | [11. Interactive Data Visualizations with Plotly in R (Mon/Wed)](https://youtu.be/87ZuiR7SrfA) 28 | 29 | [12. Enhancing Visualizations with Plotly Layout Features in Python (Mon/Wed)](https://www.youtube.com/watch?v=gM8yz6P7V0A) 30 | 31 | [13. Creating Animations using gganimate (Mon/Wed)](https://www.youtube.com/watch?v=USw2AECFIkw) 32 | 33 | [14. Creating Sankey Diagrams with networkD3 in R (Mon/Wed)](https://youtu.be/n43RMdALxvc) 34 | 35 | [15. Gene and Protein Interaction Networks with NetworkD3 in R (Mon/Wed)](https://www.youtube.com/watch?v=FdzTsrCvdkk) 36 | 37 | [16. Animated Demographic Trend Maps with Census Data in R (Mon/Wed)](https://www.youtube.com/watch?v=aUJAHXfVrnw) 38 | 39 | [17. Arrow Plots and Animations for Exploratory Data Analysis and Visualization (Tues/Thurs)](https://www.youtube.com/watch?v=rp4ahQtkXrM&ab_channel=YelamanSain) 40 | 41 | 42 | # 3: Basic and Advanced Techniques 43 | [18. Overlaying Facetted Histograms with Theoretical Normal Density Curves (Mon/Wed)](https://www.youtube.com/watch?v=9wtvJz82oSw) 44 | 45 | [19. Plotting theoretical normal distribution across facets using gg4x (Mon/Wed)](https://youtu.be/fyHNWSkcYpk) 46 | 47 | [20. Bubble and 3D Plot Techniques in R with Plotly (Mon/Wed)](https://youtu.be/tpl4TEVOHCI) 48 | 49 | [21. Unlocking Inclusive Data Visualization: Color-Blind Friendly Charts in R (Mon/Wed)](https://youtu.be/PudGAzRal_4) 50 | 51 | [22. Combining boxplots and ridgeline plots on one plot (Mon/Wed)](https://www.youtube.com/watch?v=40MokoiI3Aw) 52 | 53 | [23. EDA & Visualization on Ranking Method (Mon/Wed)](https://youtu.be/aG7t5I2zk9E) 54 | 55 | [24. Comparing Facet Functions: facet_wrap() vs facet_grid() (Mon/Wed)](https://www.youtube.com/watch?v=6k39xguz4js) 56 | 57 | [25. Generative Art Techniques in R (Mon/Wed)](https://youtu.be/ZAyUFSky0N8) 58 | 59 | [26. Creating the Droste Effect in R (Mon/Wed)](https://youtu.be/nI1XMoUHn0o) 60 | 61 | [27. 3 Stages of Aesthetic Evaluation in GGplot2 (Mon/Wed)](https://youtu.be/JV1eIjZ2EPA) 62 | 63 | [28. How To Create a Color Palette from an Image (Mon/Wed)](https://www.youtube.com/watch?v=U6-6sXRUwoI) 64 | 65 | [29. MBTI Data Analysis with Circular Visualization (Mon/Wed)](https://youtu.be/bQ6XQiVKSGU) 66 | 67 | [30. How to draw normal curves while using 'facet_wrap()' in R (Tues/Thurs)](https://youtu.be/jLz0sf-UWug) 68 | 69 | [31. Effective color ramps (Tues/Thurs)](https://youtu.be/8Ktp7bOyGNg) 70 | 71 | [32. Creating 2D and 3D Visualizations with Rayshader (Tues/Thurs)](https://www.youtube.com/watch?v=7UHCfWN96d0) 72 | 73 | [33. Customizing Themes in R with GGthemr (Tues/Thurs)](https://www.youtube.com/watch?v=IM6cCHPoP38&ab_channel=AustinSchaefer) 74 | 75 | [34. Plotting Waterfall Chart with R ggplot2 (Tues/Thurs)](https://youtu.be/EaNv8NVBc_Q) 76 | 77 | [35. TrelliscopeJS for Interactive Data Visualization (Tues/Thurs)](https://youtu.be/7qcQgLN8TnM) 78 | 79 | [36. Correlation Matrices and Hierarchical Clustering in R (Tues/Thurs)](https://youtu.be/PhbY_ovIQIw) 80 | 81 | [37. Basic Table Creation in R (Tues/Thurs)](https://youtu.be/SL9gkcZjGx4) 82 | 83 | [38. Designing Bivariate Color Palettes for Choropleth Maps in R (Tues/Thurs)](https://www.youtube.com/watch?v=KrwS10RStbw) 84 | 85 | [39. Deep Dive of Parallel Coordinate Plots in R (Tues/Thurs)](https://youtu.be/HTh5e7v54uM) 86 | 87 | 88 | # 4: Specialized Data Types Visualization 89 | [40. Using WordClouds to analyze data (Mon/Wed)](https://youtu.be/GPHgiqD2XfE) 90 | 91 | [41. R Visualizations for Financial Data Analysis with Plotly (Mon/Wed)](https://youtu.be/tbmGq7_TM-4) 92 | 93 | [42. NFL Visualizations with Next Gen Stats (Mon/Wed)](https://youtu.be/xs0cGbjoseE) 94 | 95 | [43. Personal Finance Case Study: Monthly Expense Analysis in R (Mon/Wed)](https://youtu.be/Q06kLBNwGc8) 96 | 97 | [44. Explaining tm and wordcloud2 Packages in R (Mon/Wed)](https://youtu.be/1DR7mgeZuKE) 98 | 99 | [45. Interactive Visualization of Geospatial Data with GGplot2 and Plotly (Tues/Thurs)](https://youtu.be/ui8R4zbRgo8) 100 | 101 | [46. How to use Geom_map in GGplot2 (Tues/Thurs)](https://youtu.be/NqDyeAsKUm8) 102 | 103 | [47. Using R to visualize expense (Tues/Thurs)](https://youtu.be/8lsHGKUn8A0) 104 | 105 | [48. Accident Density Mapping in NYC with Plotly Interactive Plots (Tues/Thurs)](https://www.youtube.com/watch?v=tikmXPmjig8) 106 | 107 | [49. Add graphs Inside Markers on a Geographic Map with LeafLet (Tues/Thurs)](https://youtu.be/cs6Mb3Kv7rA) 108 | 109 | [50. Maps and Projections in R (Tues/Thurs)](https://youtu.be/xjwiaVM0G9A) 110 | 111 | [51. Interactive Time Series Data Visualization with Dygraphs Package (Tues/Thurs)](https://youtu.be/71zl39yzwXM) 112 | 113 | [52. Choropleth Maps in R (Tues/Thurs)](https://youtu.be/-hutMwiLO7A) 114 | 115 | 116 | # 5: Statistical and Quantitative Analysis 117 | [53. Exploring Categorical Datasets in R (Mon/Wed)](https://youtu.be/s5ehRahj2pM?feature=shared) 118 | 119 | [54. Quantile-Based Data Partitioning Methods in R with Cut2() (Mon/Wed)](https://youtu.be/BmxpApzmpqE) 120 | 121 | [55. Effective Data Comparison on Different Scales (Mon/Wed)](https://www.youtube.com/watch?v=LG10EWIpCD4) 122 | 123 | [56. Jointplot with GGside for Bivariate Analysis (Tues/Thurs)](https://www.youtube.com/watch?v=bLQfqMvSh3g) 124 | 125 | [57. Lattice Package for Univariate and Multivariate Analysis (Tues/Thurs)](https://youtu.be/wsrGQPPPmN4) 126 | 127 | 128 | # 6: Miscellaneous 129 | [58. Data Visualization with Emojis (Tues/Thurs)](https://youtu.be/A-il70GvkkM) 130 | 131 | [59. Formatting of R Output File and Changing Order of Graph Layers (Tues/Thurs)](https://www.youtube.com/watch?v=xj4HCy5Y3Yg) 132 | 133 | [60. Graph Resizing in R Markdown (Tues/Thurs)](https://youtu.be/PWqMcgbISFI) 134 | 135 | 136 | -------------------------------------------------------------------------------- /docs/site_libs/clipboard/clipboard.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * clipboard.js v2.0.11 3 | * https://clipboardjs.com/ 4 | * 5 | * Licensed MIT © Zeno Rocha 6 | */ 7 | !function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.ClipboardJS=e():t.ClipboardJS=e()}(this,function(){return n={686:function(t,e,n){"use strict";n.d(e,{default:function(){return b}});var e=n(279),i=n.n(e),e=n(370),u=n.n(e),e=n(817),r=n.n(e);function c(t){try{return document.execCommand(t)}catch(t){return}}var a=function(t){t=r()(t);return c("cut"),t};function o(t,e){var n,o,t=(n=t,o="rtl"===document.documentElement.getAttribute("dir"),(t=document.createElement("textarea")).style.fontSize="12pt",t.style.border="0",t.style.padding="0",t.style.margin="0",t.style.position="absolute",t.style[o?"right":"left"]="-9999px",o=window.pageYOffset||document.documentElement.scrollTop,t.style.top="".concat(o,"px"),t.setAttribute("readonly",""),t.value=n,t);return e.container.appendChild(t),e=r()(t),c("copy"),t.remove(),e}var f=function(t){var e=1 { 17 | btn.style.display = "none"; 18 | }; 19 | const showBackToTop = () => { 20 | btn.style.display = "inline-block"; 21 | }; 22 | if (btn) { 23 | window.document.addEventListener( 24 | "scroll", 25 | function () { 26 | const currentScrollTop = 27 | window.pageYOffset || document.documentElement.scrollTop; 28 | 29 | // Shows and hides the button 'intelligently' as the user scrolls 30 | if (currentScrollTop - scrollDownBuffer > lastScrollTop) { 31 | hideBackToTop(); 32 | lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; 33 | } else if (currentScrollTop < lastScrollTop - scrollUpBuffer) { 34 | showBackToTop(); 35 | lastScrollTop = currentScrollTop <= 0 ? 0 : currentScrollTop; 36 | } 37 | 38 | // Show the button at the bottom, hides it at the top 39 | if (currentScrollTop <= 0) { 40 | hideBackToTop(); 41 | } else if ( 42 | window.innerHeight + currentScrollTop >= 43 | document.body.offsetHeight 44 | ) { 45 | showBackToTop(); 46 | } 47 | }, 48 | false 49 | ); 50 | } 51 | 52 | function throttle(func, wait) { 53 | var timeout; 54 | return function () { 55 | const context = this; 56 | const args = arguments; 57 | const later = function () { 58 | clearTimeout(timeout); 59 | timeout = null; 60 | func.apply(context, args); 61 | }; 62 | 63 | if (!timeout) { 64 | timeout = setTimeout(later, wait); 65 | } 66 | }; 67 | } 68 | 69 | function headerOffset() { 70 | // Set an offset if there is are fixed top navbar 71 | const headerEl = window.document.querySelector("header.fixed-top"); 72 | if (headerEl) { 73 | return headerEl.clientHeight; 74 | } else { 75 | return 0; 76 | } 77 | } 78 | 79 | function footerOffset() { 80 | const footerEl = window.document.querySelector("footer.footer"); 81 | if (footerEl) { 82 | return footerEl.clientHeight; 83 | } else { 84 | return 0; 85 | } 86 | } 87 | 88 | function updateDocumentOffsetWithoutAnimation() { 89 | updateDocumentOffset(false); 90 | } 91 | 92 | function updateDocumentOffset(animated) { 93 | // set body offset 94 | const topOffset = headerOffset(); 95 | const bodyOffset = topOffset + footerOffset(); 96 | const bodyEl = window.document.body; 97 | bodyEl.setAttribute("data-bs-offset", topOffset); 98 | bodyEl.style.paddingTop = topOffset + "px"; 99 | 100 | // deal with sidebar offsets 101 | const sidebars = window.document.querySelectorAll( 102 | ".sidebar, .headroom-target" 103 | ); 104 | sidebars.forEach((sidebar) => { 105 | if (!animated) { 106 | sidebar.classList.add("notransition"); 107 | // Remove the no transition class after the animation has time to complete 108 | setTimeout(function () { 109 | sidebar.classList.remove("notransition"); 110 | }, 201); 111 | } 112 | 113 | if (window.Headroom && sidebar.classList.contains("sidebar-unpinned")) { 114 | sidebar.style.top = "0"; 115 | sidebar.style.maxHeight = "100vh"; 116 | } else { 117 | sidebar.style.top = topOffset + "px"; 118 | sidebar.style.maxHeight = "calc(100vh - " + topOffset + "px)"; 119 | } 120 | }); 121 | 122 | // allow space for footer 123 | const mainContainer = window.document.querySelector(".quarto-container"); 124 | if (mainContainer) { 125 | mainContainer.style.minHeight = "calc(100vh - " + bodyOffset + "px)"; 126 | } 127 | 128 | // link offset 129 | let linkStyle = window.document.querySelector("#quarto-target-style"); 130 | if (!linkStyle) { 131 | linkStyle = window.document.createElement("style"); 132 | linkStyle.setAttribute("id", "quarto-target-style"); 133 | window.document.head.appendChild(linkStyle); 134 | } 135 | while (linkStyle.firstChild) { 136 | linkStyle.removeChild(linkStyle.firstChild); 137 | } 138 | if (topOffset > 0) { 139 | linkStyle.appendChild( 140 | window.document.createTextNode(` 141 | section:target::before { 142 | content: ""; 143 | display: block; 144 | height: ${topOffset}px; 145 | margin: -${topOffset}px 0 0; 146 | }`) 147 | ); 148 | } 149 | if (init) { 150 | window.dispatchEvent(headroomChanged); 151 | } 152 | init = true; 153 | } 154 | 155 | // initialize headroom 156 | var header = window.document.querySelector("#quarto-header"); 157 | if (header && window.Headroom) { 158 | const headroom = new window.Headroom(header, { 159 | tolerance: 5, 160 | onPin: function () { 161 | const sidebars = window.document.querySelectorAll( 162 | ".sidebar, .headroom-target" 163 | ); 164 | sidebars.forEach((sidebar) => { 165 | sidebar.classList.remove("sidebar-unpinned"); 166 | }); 167 | updateDocumentOffset(); 168 | }, 169 | onUnpin: function () { 170 | const sidebars = window.document.querySelectorAll( 171 | ".sidebar, .headroom-target" 172 | ); 173 | sidebars.forEach((sidebar) => { 174 | sidebar.classList.add("sidebar-unpinned"); 175 | }); 176 | updateDocumentOffset(); 177 | }, 178 | }); 179 | headroom.init(); 180 | 181 | let frozen = false; 182 | window.quartoToggleHeadroom = function () { 183 | if (frozen) { 184 | headroom.unfreeze(); 185 | frozen = false; 186 | } else { 187 | headroom.freeze(); 188 | frozen = true; 189 | } 190 | }; 191 | } 192 | 193 | window.addEventListener( 194 | "hashchange", 195 | function (e) { 196 | if ( 197 | getComputedStyle(document.documentElement).scrollBehavior !== "smooth" 198 | ) { 199 | window.scrollTo(0, window.pageYOffset - headerOffset()); 200 | } 201 | }, 202 | false 203 | ); 204 | 205 | // Observe size changed for the header 206 | const headerEl = window.document.querySelector("header.fixed-top"); 207 | if (headerEl && window.ResizeObserver) { 208 | const observer = new window.ResizeObserver( 209 | updateDocumentOffsetWithoutAnimation 210 | ); 211 | observer.observe(headerEl, { 212 | attributes: true, 213 | childList: true, 214 | characterData: true, 215 | }); 216 | } else { 217 | window.addEventListener( 218 | "resize", 219 | throttle(updateDocumentOffsetWithoutAnimation, 50) 220 | ); 221 | } 222 | setTimeout(updateDocumentOffsetWithoutAnimation, 250); 223 | 224 | // fixup index.html links if we aren't on the filesystem 225 | if (window.location.protocol !== "file:") { 226 | const links = window.document.querySelectorAll("a"); 227 | for (let i = 0; i < links.length; i++) { 228 | if (links[i].href) { 229 | links[i].href = links[i].href.replace(/\/index\.html/, "/"); 230 | } 231 | } 232 | 233 | // Fixup any sharing links that require urls 234 | // Append url to any sharing urls 235 | const sharingLinks = window.document.querySelectorAll( 236 | "a.sidebar-tools-main-item" 237 | ); 238 | for (let i = 0; i < sharingLinks.length; i++) { 239 | const sharingLink = sharingLinks[i]; 240 | const href = sharingLink.getAttribute("href"); 241 | if (href) { 242 | sharingLink.setAttribute( 243 | "href", 244 | href.replace("|url|", window.location.href) 245 | ); 246 | } 247 | } 248 | 249 | // Scroll the active navigation item into view, if necessary 250 | const navSidebar = window.document.querySelector("nav#quarto-sidebar"); 251 | if (navSidebar) { 252 | // Find the active item 253 | const activeItem = navSidebar.querySelector("li.sidebar-item a.active"); 254 | if (activeItem) { 255 | // Wait for the scroll height and height to resolve by observing size changes on the 256 | // nav element that is scrollable 257 | const resizeObserver = new ResizeObserver((_entries) => { 258 | // The bottom of the element 259 | const elBottom = activeItem.offsetTop; 260 | const viewBottom = navSidebar.scrollTop + navSidebar.clientHeight; 261 | 262 | // The element height and scroll height are the same, then we are still loading 263 | if (viewBottom !== navSidebar.scrollHeight) { 264 | // Determine if the item isn't visible and scroll to it 265 | if (elBottom >= viewBottom) { 266 | navSidebar.scrollTop = elBottom; 267 | } 268 | 269 | // stop observing now since we've completed the scroll 270 | resizeObserver.unobserve(navSidebar); 271 | } 272 | }); 273 | resizeObserver.observe(navSidebar); 274 | } 275 | } 276 | } 277 | }); 278 | -------------------------------------------------------------------------------- /docs/search.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "objectID": "scripts/automatic-script.html", 4 | "href": "scripts/automatic-script.html", 5 | "title": "EDAV Fall 2023 Community Contribution", 6 | "section": "", 7 | "text": "import pandas as pd\nimport numpy as np\n\n\nlinks = pd.read_csv('links-spreadsheet.csv')\n\n\nprint(len(links.index))\n\n109\n\n\n\ndf = links[['Section','Links','Main Category','Sub Category','Title']]\ndf = df.dropna(subset=['Main Category'])\n\n\ndf.head(3)\ncategory_list = list(set(df['Main Category'].to_list()))\n\n\nprint(category_list)\n\n['Interactive and Web-based Applications', 'Programming Techniques and Tools', 'Parameter Analysis of Visualization Techniques', 'Data Visualization Techniques', 'Data Collection and Preprocessing', 'Outside of R', 'Statistical Analysis and Modelling']\n\n\n\ndf1 = df[df[\"Main Category\"] == \"Data Collection and Preprocessing\"]\n\n\ndf1.head(10)\nsubcategory_list1 = list(set(df1['Sub Category'].to_list()))\n\n\nprint(subcategory_list1)\n\n['Miscellaneous']\n\n\n\ncategory_list = sorted(category_list)\ncategory_list.append(category_list.pop(category_list.index('Outside of R')))\n\nfor cat_nb in range(len(category_list)):\n main_category = category_list[cat_nb]\n df1 = df[df[\"Main Category\"] == main_category]\n\n with open(f'project{cat_nb+1}.qmd', 'w') as f: #projecti.qmd\n link_nb = 1\n f.write(\"---\\n\")\n f.write(f\"title: \\\"{main_category}\\\"\\n\")\n f.write(\"---\\n\")\n\n subcategory_list1 = list(set(df1['Sub Category'].to_list()))\n\n # try:\n subcategory_list1.append(subcategory_list1.pop(subcategory_list1.index('Miscellaneous')))\n \n\n for sub_nb, subcategory in enumerate(subcategory_list1):\n df1_sub = df1[df1[\"Sub Category\"] == subcategory]\n if len(subcategory_list1) > 1:\n f.write(f\"# Subcategory {sub_nb + 1}: {subcategory}\\n\")\n for video_nb in range(len(df1_sub['Title'].to_list())):\n # print(len(df1_sub['Title'].to_list()))\n title = df1_sub['Title'].to_list()\n section = df1_sub['Section'].to_list()\n links = df1_sub['Links'].to_list()\n f.write(f\"[{link_nb}. {title[video_nb]} ({section[video_nb]})]({links[video_nb]})\\n\\n\")\n link_nb += 1\n f.write(\"\\n\")\n \n\n\nlen(df1_sub['Title'].to_list())\n\n8\n\n\n\n\n\n Back to top" 8 | }, 9 | { 10 | "objectID": "project3.html", 11 | "href": "project3.html", 12 | "title": "3. Interactive and Web-based Applications", 13 | "section": "", 14 | "text": "1: Equisse Package\n1. Easy Data Analysis and Visualization Add-ins in R (Mon/Wed)\n2. Data Visualization R Add-ins: Equisse and GGThemeAssist (Tues/Thurs)\n\n\n2: Shiny App\n3. How to make an Interactive Dashboard with Shiny App on R (Mon/Wed)\n4. Introducing Shiny Package in R - Interactive Web Dashboard (Mon/Wed)\n5. RShiny: Overview, Reactives, How it helps (Mon/Wed)\n6. Introduction to Features of Shiny App (Tues/Thurs)\n7. Outlier Detection App with Shiny App (Tues/Thurs)\n8. Interactive Linear Regression Model App with Shiny App (Tues/Thurs)\n\n\n3: Miscellaneous\n9. Implementing Interactive Filters in R (Mon/Wed)\n10. Interactive Dashboard Creation in R (Mon/Wed)\n11. Understanding Interactive 2D Splines (Mon/Wed)\n12. Embedding Visualizations into Web Apps with R (Mon/Wed)\n13. Quick Interactive Data Visualization with GGplot and GGRapture (Tues/Thurs)\n\n\n\n\n Back to top" 15 | }, 16 | { 17 | "objectID": "project2.html", 18 | "href": "project2.html", 19 | "title": "2. Data Visualization Techniques", 20 | "section": "", 21 | "text": "1: Plot Types and Techniques\n1. Creating Scatter Plots with Boundaries in R (Mon/Wed)\n2. Interactive Heatmap Visualization in Montgomery County with R Shiny (Mon/Wed)\n3. HexMaps: Understanding the Y-axis (Mon/Wed)\n4. Sorting Boxplots and Barplots in R (Mon/Wed)\n5. Comparison between Geom_Mosaic and Vcd::Mosaic (Mon/Wed)\n6. Unemployment Heatmaps with R and Python (Mon/Wed)\n7. Comparison Between Population Pyramid and Violin Plot (Mon/Wed)\n8. Common Uses of Heatmap (Tues/Thurs)\n9. Heatmaps in R (Tues/Thurs)\n10. Interactive Scatterplots with Highcharter Package in R (Tues/Thurs)\n\n\n2: Interactive and Dynamic Visualizations\n11. Interactive Data Visualizations with Plotly in R (Mon/Wed)\n12. Enhancing Visualizations with Plotly Layout Features in Python (Mon/Wed)\n13. Creating Animations using gganimate (Mon/Wed)\n14. Creating Sankey Diagrams with networkD3 in R (Mon/Wed)\n15. Gene and Protein Interaction Networks with NetworkD3 in R (Mon/Wed)\n16. Animated Demographic Trend Maps with Census Data in R (Mon/Wed)\n17. Arrow Plots and Animations for Exploratory Data Analysis and Visualization (Tues/Thurs)\n\n\n3: Basic and Advanced Techniques\n18. Overlaying Facetted Histograms with Theoretical Normal Density Curves (Mon/Wed)\n19. Plotting theoretical normal distribution across facets using gg4x (Mon/Wed)\n20. Bubble and 3D Plot Techniques in R with Plotly (Mon/Wed)\n21. Unlocking Inclusive Data Visualization: Color-Blind Friendly Charts in R (Mon/Wed)\n22. Combining boxplots and ridgeline plots on one plot (Mon/Wed)\n23. EDA & Visualization on Ranking Method (Mon/Wed)\n24. Comparing Facet Functions: facet_wrap() vs facet_grid() (Mon/Wed)\n25. Generative Art Techniques in R (Mon/Wed)\n26. Creating the Droste Effect in R (Mon/Wed)\n27. 3 Stages of Aesthetic Evaluation in GGplot2 (Mon/Wed)\n28. How To Create a Color Palette from an Image (Mon/Wed)\n29. MBTI Data Analysis with Circular Visualization (Mon/Wed)\n30. How to draw normal curves while using ‘facet_wrap()’ in R (Tues/Thurs)\n31. Effective color ramps (Tues/Thurs)\n32. Creating 2D and 3D Visualizations with Rayshader (Tues/Thurs)\n33. Customizing Themes in R with GGthemr (Tues/Thurs)\n34. Plotting Waterfall Chart with R ggplot2 (Tues/Thurs)\n35. TrelliscopeJS for Interactive Data Visualization (Tues/Thurs)\n36. Correlation Matrices and Hierarchical Clustering in R (Tues/Thurs)\n37. Basic Table Creation in R (Tues/Thurs)\n38. Designing Bivariate Color Palettes for Choropleth Maps in R (Tues/Thurs)\n39. Deep Dive of Parallel Coordinate Plots in R (Tues/Thurs)\n\n\n4: Specialized Data Types Visualization\n40. Using WordClouds to analyze data (Mon/Wed)\n41. R Visualizations for Financial Data Analysis with Plotly (Mon/Wed)\n42. NFL Visualizations with Next Gen Stats (Mon/Wed)\n43. Personal Finance Case Study: Monthly Expense Analysis in R (Mon/Wed)\n44. Explaining tm and wordcloud2 Packages in R (Mon/Wed)\n45. Interactive Visualization of Geospatial Data with GGplot2 and Plotly (Tues/Thurs)\n46. How to use Geom_map in GGplot2 (Tues/Thurs)\n47. Using R to visualize expense (Tues/Thurs)\n48. Accident Density Mapping in NYC with Plotly Interactive Plots (Tues/Thurs)\n49. Add graphs Inside Markers on a Geographic Map with LeafLet (Tues/Thurs)\n50. Maps and Projections in R (Tues/Thurs)\n51. Interactive Time Series Data Visualization with Dygraphs Package (Tues/Thurs)\n52. Choropleth Maps in R (Tues/Thurs)\n\n\n5: Statistical and Quantitative Analysis\n53. Exploring Categorical Datasets in R (Mon/Wed)\n54. Quantile-Based Data Partitioning Methods in R with Cut2() (Mon/Wed)\n55. Effective Data Comparison on Different Scales (Mon/Wed)\n56. Jointplot with GGside for Bivariate Analysis (Tues/Thurs)\n57. Lattice Package for Univariate and Multivariate Analysis (Tues/Thurs)\n\n\n6: Miscellaneous\n58. Data Visualization with Emojis (Tues/Thurs)\n59. Formatting of R Output File and Changing Order of Graph Layers (Tues/Thurs)\n60. Graph Resizing in R Markdown (Tues/Thurs)\n\n\n\n\n Back to top" 22 | }, 23 | { 24 | "objectID": "project5.html", 25 | "href": "project5.html", 26 | "title": "6. Programming Techniques and Tools", 27 | "section": "", 28 | "text": "1. Using R in Jupyter Notebook in VSCode and Latex (Mon/Wed)\n2. Project Management in R using RProject and Renv (Mon/Wed)\n3. How to run R and Python in the same Jupyter Notebook using rpy2 (Mon/Wed)\n4. Functional Programming in R (Tues/Thurs)\n5. Quick Tips on Speeding up Data Manipulation and Visualization in R (Tues/Thurs)\n\n\n\n Back to top" 29 | }, 30 | { 31 | "objectID": "project6.html", 32 | "href": "project6.html", 33 | "title": "7. Statistical Analysis and Modelling", 34 | "section": "", 35 | "text": "1: Time Series Analysis\n1. Time Series Analysis Using Forecast Library (Mon/Wed)\n2. Introduction to ARIMA, SARIMA and Parameters Selection (Tues/Thurs)\n3. Detecting Outliers in Time Series: ‘anomaly’, ‘tsoutliers’, and ‘checkresiduals’ (Tues/Thurs)\n\n\n2: Miscellaneous\n4. Sentiment Analysis in Tweets about Fast Fashion (Mon/Wed)\n5. Causal Inference with Sandwich Package in R (Mon/Wed)\n6. Caret Package for Machine Learning (Tues/Thurs)\n7. Correlation between Google keyword searches and stock prices via regression (Tues/Thurs)\n8. Modelling of Body Fat Percentage (Tues/Thurs)\n\n\n\n\n Back to top" 36 | }, 37 | { 38 | "objectID": "project7.html", 39 | "href": "project7.html", 40 | "title": "4. Outside of R", 41 | "section": "", 42 | "text": "1: Geospatial Data Visualization\n1. Relating Impact with Interactive Maps (Mon/Wed)\n2. A Complete Python Folium Tutorial (Mon/Wed)\n3. Map Data Visualization with Folium in Python (Mon/Wed)\n4. Interactive visualization of Earthquakes in Turkey in Python (Tues/Thurs)\n5. Reducing Spatial Data Redundancies (Tues/Thurs)\n\n\n2: Miscellaneous\n6. Streamlit Data Analysis App: StudyStats, a non-coding platform for beginners (Mon/Wed)\n7. Interactive Data Visualizations in Python (Mon/Wed)\n8. Visualizing Demographic Trends with Animated Maps (Mon/Wed)\n9. Exploratory Analysis and Data Visualization (Mon/Wed)\n10. Color Interpolation for Choropleth Maps in Data Wrapper (Tues/Thurs)\n11. Interactive visualization with Plotly in Python (Tues/Thurs)\n12. Efficient Excel Chart Management with VBA Macros (Tues/Thurs)\n13. Visualization of Graph Data with Neo4J in Python (Tues/Thurs)\n\n\n\n\n Back to top" 43 | }, 44 | { 45 | "objectID": "project4.html", 46 | "href": "project4.html", 47 | "title": "5. Parameter Analysis of Visualization Techniques", 48 | "section": "", 49 | "text": "1. QQ Plots and Sample Quantiles Analysis in R (Mon/Wed)\n2. Deep Dive in Hexagonal Grids (Tues/Thurs)\n\n\n\n Back to top" 50 | }, 51 | { 52 | "objectID": "project1.html", 53 | "href": "project1.html", 54 | "title": "1. Data Collection and Preprocessing", 55 | "section": "", 56 | "text": "1. Understanding the grepl() function in R (Mon/Wed)\n2. Strategies for Handling Missing Data (Mon/Wed)\n3. Combining Sub-Categories in Dataframes in R with grepl() (Mon/Wed)\n4. Min-max Scaling in R (Mon/Wed)\n5. Web Scraping in R (Tues/Thurs)\n6. Working with Time Zone in R with Lubridate (Tues/Thurs)\n7. Tricks of data cleaning and visualization in R (Tues/Thurs)\n\n\n\n Back to top" 57 | }, 58 | { 59 | "objectID": "index.html", 60 | "href": "index.html", 61 | "title": "Welcome!", 62 | "section": "", 63 | "text": "This webpage contains community contributions for Fall 2023 EDAV class at Columbia University.\nThere are 108 videos in total that are divided into 7 categories.\nFor the final project, you’re welcome to first check out “1. Data Collection and Preprocessing” and “2. Data Visualization Techniques”, as these are all videos about the basic graphs, skills, and packages in R that are within the scope of the final project. There are also several subcategories in each of them.\nOther categories cover more advanced skills, which may be outside the scope of the final project but are still extremely interesting, useful, and insightful!\n“3. Interactive and Web-based Applications”: Using Shiny App in R to create interactive online dashboards\n“4. Outside of R”: Data visualization techniques outside of R, most of which are in Python\n“5. Parameter Analysis of Visualization Techniques”: Dives into the mathematical foundation behind visualization techniques\n“6. Programming Techniques and Tools”: Diverse programming techniques ranging from speeding up codes in R to integrating R with VSCode and Latex\n“7. Statistical Analysis and Modeling”: Machine learning, modeling, and inference in R\n\n\n\n Back to top" 64 | }, 65 | { 66 | "objectID": "welcome.html", 67 | "href": "welcome.html", 68 | "title": "Welcome!", 69 | "section": "", 70 | "text": "This webpage contains community contributions for Fall 2023 EDAV class at Columbia University.\nThere are 108 videos in total that are divided into 7 categories.\nFor the final project, you’re welcome to first check out “1. Data Collection and Preprocessing” and “2. Data Visualization Techniques”, as these are all videos about the basic graphs, skills, and packages in R that are within the scope of the final project. There are also several subcategories in each of them.\nOther categories cover more advanced skills, which may be outside the scope of the final project but are still extremely interesting, useful, and insightful!\n“3. Interactive and Web-based Applications”: Using Shiny App in R to create interactive online dashboards\n“4. Outside of R”: Data visualization techniques outside of R, most of which are in Python\n“5. Parameter Analysis of Visualization Techniques”: Dives into the mathematical foundation behind visualization techniques\n“6. Programming Techniques and Tools”: Diverse programming techniques ranging from speeding up codes in R to integrating R with VSCode and Latex\n“7. Statistical Analysis and Modeling”: Machine learning, modeling, and inference in R\n\n\n\n Back to top" 71 | } 72 | ] -------------------------------------------------------------------------------- /docs/site_libs/quarto-html/popper.min.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @popperjs/core v2.11.4 - MIT License 3 | */ 4 | 5 | !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Popper={})}(this,(function(e){"use strict";function t(e){if(null==e)return window;if("[object Window]"!==e.toString()){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function n(e){return e instanceof t(e).Element||e instanceof Element}function r(e){return e instanceof t(e).HTMLElement||e instanceof HTMLElement}function o(e){return"undefined"!=typeof ShadowRoot&&(e instanceof t(e).ShadowRoot||e instanceof ShadowRoot)}var i=Math.max,a=Math.min,s=Math.round;function f(e,t){void 0===t&&(t=!1);var n=e.getBoundingClientRect(),o=1,i=1;if(r(e)&&t){var a=e.offsetHeight,f=e.offsetWidth;f>0&&(o=s(n.width)/f||1),a>0&&(i=s(n.height)/a||1)}return{width:n.width/o,height:n.height/i,top:n.top/i,right:n.right/o,bottom:n.bottom/i,left:n.left/o,x:n.left/o,y:n.top/i}}function c(e){var n=t(e);return{scrollLeft:n.pageXOffset,scrollTop:n.pageYOffset}}function p(e){return e?(e.nodeName||"").toLowerCase():null}function u(e){return((n(e)?e.ownerDocument:e.document)||window.document).documentElement}function l(e){return f(u(e)).left+c(e).scrollLeft}function d(e){return t(e).getComputedStyle(e)}function h(e){var t=d(e),n=t.overflow,r=t.overflowX,o=t.overflowY;return/auto|scroll|overlay|hidden/.test(n+o+r)}function m(e,n,o){void 0===o&&(o=!1);var i,a,d=r(n),m=r(n)&&function(e){var t=e.getBoundingClientRect(),n=s(t.width)/e.offsetWidth||1,r=s(t.height)/e.offsetHeight||1;return 1!==n||1!==r}(n),v=u(n),g=f(e,m),y={scrollLeft:0,scrollTop:0},b={x:0,y:0};return(d||!d&&!o)&&(("body"!==p(n)||h(v))&&(y=(i=n)!==t(i)&&r(i)?{scrollLeft:(a=i).scrollLeft,scrollTop:a.scrollTop}:c(i)),r(n)?((b=f(n,!0)).x+=n.clientLeft,b.y+=n.clientTop):v&&(b.x=l(v))),{x:g.left+y.scrollLeft-b.x,y:g.top+y.scrollTop-b.y,width:g.width,height:g.height}}function v(e){var t=f(e),n=e.offsetWidth,r=e.offsetHeight;return Math.abs(t.width-n)<=1&&(n=t.width),Math.abs(t.height-r)<=1&&(r=t.height),{x:e.offsetLeft,y:e.offsetTop,width:n,height:r}}function g(e){return"html"===p(e)?e:e.assignedSlot||e.parentNode||(o(e)?e.host:null)||u(e)}function y(e){return["html","body","#document"].indexOf(p(e))>=0?e.ownerDocument.body:r(e)&&h(e)?e:y(g(e))}function b(e,n){var r;void 0===n&&(n=[]);var o=y(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),a=t(o),s=i?[a].concat(a.visualViewport||[],h(o)?o:[]):o,f=n.concat(s);return i?f:f.concat(b(g(s)))}function x(e){return["table","td","th"].indexOf(p(e))>=0}function w(e){return r(e)&&"fixed"!==d(e).position?e.offsetParent:null}function O(e){for(var n=t(e),i=w(e);i&&x(i)&&"static"===d(i).position;)i=w(i);return i&&("html"===p(i)||"body"===p(i)&&"static"===d(i).position)?n:i||function(e){var t=-1!==navigator.userAgent.toLowerCase().indexOf("firefox");if(-1!==navigator.userAgent.indexOf("Trident")&&r(e)&&"fixed"===d(e).position)return null;var n=g(e);for(o(n)&&(n=n.host);r(n)&&["html","body"].indexOf(p(n))<0;){var i=d(n);if("none"!==i.transform||"none"!==i.perspective||"paint"===i.contain||-1!==["transform","perspective"].indexOf(i.willChange)||t&&"filter"===i.willChange||t&&i.filter&&"none"!==i.filter)return n;n=n.parentNode}return null}(e)||n}var j="top",E="bottom",D="right",A="left",L="auto",P=[j,E,D,A],M="start",k="end",W="viewport",B="popper",H=P.reduce((function(e,t){return e.concat([t+"-"+M,t+"-"+k])}),[]),T=[].concat(P,[L]).reduce((function(e,t){return e.concat([t,t+"-"+M,t+"-"+k])}),[]),R=["beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite"];function S(e){var t=new Map,n=new Set,r=[];function o(e){n.add(e.name),[].concat(e.requires||[],e.requiresIfExists||[]).forEach((function(e){if(!n.has(e)){var r=t.get(e);r&&o(r)}})),r.push(e)}return e.forEach((function(e){t.set(e.name,e)})),e.forEach((function(e){n.has(e.name)||o(e)})),r}function C(e){return e.split("-")[0]}function q(e,t){var n=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(n&&o(n)){var r=t;do{if(r&&e.isSameNode(r))return!0;r=r.parentNode||r.host}while(r)}return!1}function V(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function N(e,r){return r===W?V(function(e){var n=t(e),r=u(e),o=n.visualViewport,i=r.clientWidth,a=r.clientHeight,s=0,f=0;return o&&(i=o.width,a=o.height,/^((?!chrome|android).)*safari/i.test(navigator.userAgent)||(s=o.offsetLeft,f=o.offsetTop)),{width:i,height:a,x:s+l(e),y:f}}(e)):n(r)?function(e){var t=f(e);return t.top=t.top+e.clientTop,t.left=t.left+e.clientLeft,t.bottom=t.top+e.clientHeight,t.right=t.left+e.clientWidth,t.width=e.clientWidth,t.height=e.clientHeight,t.x=t.left,t.y=t.top,t}(r):V(function(e){var t,n=u(e),r=c(e),o=null==(t=e.ownerDocument)?void 0:t.body,a=i(n.scrollWidth,n.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),s=i(n.scrollHeight,n.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),f=-r.scrollLeft+l(e),p=-r.scrollTop;return"rtl"===d(o||n).direction&&(f+=i(n.clientWidth,o?o.clientWidth:0)-a),{width:a,height:s,x:f,y:p}}(u(e)))}function I(e,t,o){var s="clippingParents"===t?function(e){var t=b(g(e)),o=["absolute","fixed"].indexOf(d(e).position)>=0&&r(e)?O(e):e;return n(o)?t.filter((function(e){return n(e)&&q(e,o)&&"body"!==p(e)})):[]}(e):[].concat(t),f=[].concat(s,[o]),c=f[0],u=f.reduce((function(t,n){var r=N(e,n);return t.top=i(r.top,t.top),t.right=a(r.right,t.right),t.bottom=a(r.bottom,t.bottom),t.left=i(r.left,t.left),t}),N(e,c));return u.width=u.right-u.left,u.height=u.bottom-u.top,u.x=u.left,u.y=u.top,u}function _(e){return e.split("-")[1]}function F(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function U(e){var t,n=e.reference,r=e.element,o=e.placement,i=o?C(o):null,a=o?_(o):null,s=n.x+n.width/2-r.width/2,f=n.y+n.height/2-r.height/2;switch(i){case j:t={x:s,y:n.y-r.height};break;case E:t={x:s,y:n.y+n.height};break;case D:t={x:n.x+n.width,y:f};break;case A:t={x:n.x-r.width,y:f};break;default:t={x:n.x,y:n.y}}var c=i?F(i):null;if(null!=c){var p="y"===c?"height":"width";switch(a){case M:t[c]=t[c]-(n[p]/2-r[p]/2);break;case k:t[c]=t[c]+(n[p]/2-r[p]/2)}}return t}function z(e){return Object.assign({},{top:0,right:0,bottom:0,left:0},e)}function X(e,t){return t.reduce((function(t,n){return t[n]=e,t}),{})}function Y(e,t){void 0===t&&(t={});var r=t,o=r.placement,i=void 0===o?e.placement:o,a=r.boundary,s=void 0===a?"clippingParents":a,c=r.rootBoundary,p=void 0===c?W:c,l=r.elementContext,d=void 0===l?B:l,h=r.altBoundary,m=void 0!==h&&h,v=r.padding,g=void 0===v?0:v,y=z("number"!=typeof g?g:X(g,P)),b=d===B?"reference":B,x=e.rects.popper,w=e.elements[m?b:d],O=I(n(w)?w:w.contextElement||u(e.elements.popper),s,p),A=f(e.elements.reference),L=U({reference:A,element:x,strategy:"absolute",placement:i}),M=V(Object.assign({},x,L)),k=d===B?M:A,H={top:O.top-k.top+y.top,bottom:k.bottom-O.bottom+y.bottom,left:O.left-k.left+y.left,right:k.right-O.right+y.right},T=e.modifiersData.offset;if(d===B&&T){var R=T[i];Object.keys(H).forEach((function(e){var t=[D,E].indexOf(e)>=0?1:-1,n=[j,E].indexOf(e)>=0?"y":"x";H[e]+=R[n]*t}))}return H}var G={placement:"bottom",modifiers:[],strategy:"absolute"};function J(){for(var e=arguments.length,t=new Array(e),n=0;n=0?-1:1,i="function"==typeof n?n(Object.assign({},t,{placement:e})):n,a=i[0],s=i[1];return a=a||0,s=(s||0)*o,[A,D].indexOf(r)>=0?{x:s,y:a}:{x:a,y:s}}(n,t.rects,i),e}),{}),s=a[t.placement],f=s.x,c=s.y;null!=t.modifiersData.popperOffsets&&(t.modifiersData.popperOffsets.x+=f,t.modifiersData.popperOffsets.y+=c),t.modifiersData[r]=a}},ie={left:"right",right:"left",bottom:"top",top:"bottom"};function ae(e){return e.replace(/left|right|bottom|top/g,(function(e){return ie[e]}))}var se={start:"end",end:"start"};function fe(e){return e.replace(/start|end/g,(function(e){return se[e]}))}function ce(e,t){void 0===t&&(t={});var n=t,r=n.placement,o=n.boundary,i=n.rootBoundary,a=n.padding,s=n.flipVariations,f=n.allowedAutoPlacements,c=void 0===f?T:f,p=_(r),u=p?s?H:H.filter((function(e){return _(e)===p})):P,l=u.filter((function(e){return c.indexOf(e)>=0}));0===l.length&&(l=u);var d=l.reduce((function(t,n){return t[n]=Y(e,{placement:n,boundary:o,rootBoundary:i,padding:a})[C(n)],t}),{});return Object.keys(d).sort((function(e,t){return d[e]-d[t]}))}var pe={name:"flip",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name;if(!t.modifiersData[r]._skip){for(var o=n.mainAxis,i=void 0===o||o,a=n.altAxis,s=void 0===a||a,f=n.fallbackPlacements,c=n.padding,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.flipVariations,h=void 0===d||d,m=n.allowedAutoPlacements,v=t.options.placement,g=C(v),y=f||(g===v||!h?[ae(v)]:function(e){if(C(e)===L)return[];var t=ae(e);return[fe(e),t,fe(t)]}(v)),b=[v].concat(y).reduce((function(e,n){return e.concat(C(n)===L?ce(t,{placement:n,boundary:p,rootBoundary:u,padding:c,flipVariations:h,allowedAutoPlacements:m}):n)}),[]),x=t.rects.reference,w=t.rects.popper,O=new Map,P=!0,k=b[0],W=0;W=0,S=R?"width":"height",q=Y(t,{placement:B,boundary:p,rootBoundary:u,altBoundary:l,padding:c}),V=R?T?D:A:T?E:j;x[S]>w[S]&&(V=ae(V));var N=ae(V),I=[];if(i&&I.push(q[H]<=0),s&&I.push(q[V]<=0,q[N]<=0),I.every((function(e){return e}))){k=B,P=!1;break}O.set(B,I)}if(P)for(var F=function(e){var t=b.find((function(t){var n=O.get(t);if(n)return n.slice(0,e).every((function(e){return e}))}));if(t)return k=t,"break"},U=h?3:1;U>0;U--){if("break"===F(U))break}t.placement!==k&&(t.modifiersData[r]._skip=!0,t.placement=k,t.reset=!0)}},requiresIfExists:["offset"],data:{_skip:!1}};function ue(e,t,n){return i(e,a(t,n))}var le={name:"preventOverflow",enabled:!0,phase:"main",fn:function(e){var t=e.state,n=e.options,r=e.name,o=n.mainAxis,s=void 0===o||o,f=n.altAxis,c=void 0!==f&&f,p=n.boundary,u=n.rootBoundary,l=n.altBoundary,d=n.padding,h=n.tether,m=void 0===h||h,g=n.tetherOffset,y=void 0===g?0:g,b=Y(t,{boundary:p,rootBoundary:u,padding:d,altBoundary:l}),x=C(t.placement),w=_(t.placement),L=!w,P=F(x),k="x"===P?"y":"x",W=t.modifiersData.popperOffsets,B=t.rects.reference,H=t.rects.popper,T="function"==typeof y?y(Object.assign({},t.rects,{placement:t.placement})):y,R="number"==typeof T?{mainAxis:T,altAxis:T}:Object.assign({mainAxis:0,altAxis:0},T),S=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,q={x:0,y:0};if(W){if(s){var V,N="y"===P?j:A,I="y"===P?E:D,U="y"===P?"height":"width",z=W[P],X=z+b[N],G=z-b[I],J=m?-H[U]/2:0,K=w===M?B[U]:H[U],Q=w===M?-H[U]:-B[U],Z=t.elements.arrow,$=m&&Z?v(Z):{width:0,height:0},ee=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:{top:0,right:0,bottom:0,left:0},te=ee[N],ne=ee[I],re=ue(0,B[U],$[U]),oe=L?B[U]/2-J-re-te-R.mainAxis:K-re-te-R.mainAxis,ie=L?-B[U]/2+J+re+ne+R.mainAxis:Q+re+ne+R.mainAxis,ae=t.elements.arrow&&O(t.elements.arrow),se=ae?"y"===P?ae.clientTop||0:ae.clientLeft||0:0,fe=null!=(V=null==S?void 0:S[P])?V:0,ce=z+ie-fe,pe=ue(m?a(X,z+oe-fe-se):X,z,m?i(G,ce):G);W[P]=pe,q[P]=pe-z}if(c){var le,de="x"===P?j:A,he="x"===P?E:D,me=W[k],ve="y"===k?"height":"width",ge=me+b[de],ye=me-b[he],be=-1!==[j,A].indexOf(x),xe=null!=(le=null==S?void 0:S[k])?le:0,we=be?ge:me-B[ve]-H[ve]-xe+R.altAxis,Oe=be?me+B[ve]+H[ve]-xe-R.altAxis:ye,je=m&&be?function(e,t,n){var r=ue(e,t,n);return r>n?n:r}(we,me,Oe):ue(m?we:ge,me,m?Oe:ye);W[k]=je,q[k]=je-me}t.modifiersData[r]=q}},requiresIfExists:["offset"]};var de={name:"arrow",enabled:!0,phase:"main",fn:function(e){var t,n=e.state,r=e.name,o=e.options,i=n.elements.arrow,a=n.modifiersData.popperOffsets,s=C(n.placement),f=F(s),c=[A,D].indexOf(s)>=0?"height":"width";if(i&&a){var p=function(e,t){return z("number"!=typeof(e="function"==typeof e?e(Object.assign({},t.rects,{placement:t.placement})):e)?e:X(e,P))}(o.padding,n),u=v(i),l="y"===f?j:A,d="y"===f?E:D,h=n.rects.reference[c]+n.rects.reference[f]-a[f]-n.rects.popper[c],m=a[f]-n.rects.reference[f],g=O(i),y=g?"y"===f?g.clientHeight||0:g.clientWidth||0:0,b=h/2-m/2,x=p[l],w=y-u[c]-p[d],L=y/2-u[c]/2+b,M=ue(x,L,w),k=f;n.modifiersData[r]=((t={})[k]=M,t.centerOffset=M-L,t)}},effect:function(e){var t=e.state,n=e.options.element,r=void 0===n?"[data-popper-arrow]":n;null!=r&&("string"!=typeof r||(r=t.elements.popper.querySelector(r)))&&q(t.elements.popper,r)&&(t.elements.arrow=r)},requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function he(e,t,n){return void 0===n&&(n={x:0,y:0}),{top:e.top-t.height-n.y,right:e.right-t.width+n.x,bottom:e.bottom-t.height+n.y,left:e.left-t.width-n.x}}function me(e){return[j,D,E,A].some((function(t){return e[t]>=0}))}var ve={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:function(e){var t=e.state,n=e.name,r=t.rects.reference,o=t.rects.popper,i=t.modifiersData.preventOverflow,a=Y(t,{elementContext:"reference"}),s=Y(t,{altBoundary:!0}),f=he(a,r),c=he(s,o,i),p=me(f),u=me(c);t.modifiersData[n]={referenceClippingOffsets:f,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:u},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":u})}},ge=K({defaultModifiers:[Z,$,ne,re]}),ye=[Z,$,ne,re,oe,pe,le,de,ve],be=K({defaultModifiers:ye});e.applyStyles=re,e.arrow=de,e.computeStyles=ne,e.createPopper=be,e.createPopperLite=ge,e.defaultModifiers=ye,e.detectOverflow=Y,e.eventListeners=Z,e.flip=pe,e.hide=ve,e.offset=oe,e.popperGenerator=K,e.popperOffsets=$,e.preventOverflow=le,Object.defineProperty(e,"__esModule",{value:!0})})); 6 | 7 | -------------------------------------------------------------------------------- /docs/project4.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | EDAV Fall 2023 Community Contribution - 5. Parameter Analysis of Visualization Techniques 11 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 62 | 63 | 64 | 65 | 66 | 67 | 68 |
69 |
70 | 83 | 96 |
97 | 98 |
99 | 100 | 159 |
160 | 161 | 164 | 165 |
166 | 167 |
168 |
169 |

5. Parameter Analysis of Visualization Techniques

170 |
171 | 172 | 173 | 174 |
175 | 176 | 177 | 178 | 179 |
180 | 181 | 182 |
183 | 184 |

1. QQ Plots and Sample Quantiles Analysis in R (Mon/Wed)

185 |

2. Deep Dive in Hexagonal Grids (Tues/Thurs)

186 | 187 | 188 | 189 | Back to top
190 | 423 |
424 | 433 | 434 | 435 | 436 | -------------------------------------------------------------------------------- /docs/project5.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | EDAV Fall 2023 Community Contribution - 6. Programming Techniques and Tools 11 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 62 | 63 | 64 | 65 | 66 | 67 | 68 |
69 |
70 | 83 | 96 |
97 | 98 |
99 | 100 | 159 |
160 | 161 | 164 | 165 |
166 | 167 |
168 |
169 |

6. Programming Techniques and Tools

170 |
171 | 172 | 173 | 174 |
175 | 176 | 177 | 178 | 179 |
180 | 181 | 182 |
183 | 184 |

1. Using R in Jupyter Notebook in VSCode and Latex (Mon/Wed)

185 |

2. Project Management in R using RProject and Renv (Mon/Wed)

186 |

3. How to run R and Python in the same Jupyter Notebook using rpy2 (Mon/Wed)

187 |

4. Functional Programming in R (Tues/Thurs)

188 |

5. Quick Tips on Speeding up Data Manipulation and Visualization in R (Tues/Thurs)

189 | 190 | 191 | 192 | Back to top
193 | 426 |
427 | 436 | 437 | 438 | 439 | -------------------------------------------------------------------------------- /docs/project1.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | EDAV Fall 2023 Community Contribution - 1. Data Collection and Preprocessing 11 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 62 | 63 | 64 | 65 | 66 | 67 | 68 |
69 |
70 | 83 | 96 |
97 | 98 |
99 | 100 | 159 |
160 | 161 | 164 | 165 |
166 | 167 |
168 |
169 |

1. Data Collection and Preprocessing

170 |
171 | 172 | 173 | 174 |
175 | 176 | 177 | 178 | 179 |
180 | 181 | 182 |
183 | 184 |

1. Understanding the grepl() function in R (Mon/Wed)

185 |

2. Strategies for Handling Missing Data (Mon/Wed)

186 |

3. Combining Sub-Categories in Dataframes in R with grepl() (Mon/Wed)

187 |

4. Min-max Scaling in R (Mon/Wed)

188 |

5. Web Scraping in R (Tues/Thurs)

189 |

6. Working with Time Zone in R with Lubridate (Tues/Thurs)

190 |

7. Tricks of data cleaning and visualization in R (Tues/Thurs)

191 | 192 | 193 | 194 | Back to top
195 | 428 |
429 | 438 | 439 | 440 | 441 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | EDAV Fall 2023 Community Contribution - Welcome! 11 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 62 | 63 | 64 | 65 | 66 | 67 | 68 |
69 |
70 | 83 | 96 |
97 | 98 |
99 | 100 | 159 |
160 | 161 | 164 | 165 |
166 | 167 |
168 |
169 |

Welcome!

170 |
171 | 172 | 173 | 174 |
175 | 176 | 177 | 178 | 179 |
180 | 181 | 182 |
183 | 184 |

This webpage contains community contributions for Fall 2023 EDAV class at Columbia University.

185 |

There are 108 videos in total that are divided into 7 categories.

186 |

For the final project, you’re welcome to first check out “1. Data Collection and Preprocessing” and “2. Data Visualization Techniques”, as these are all videos about the basic graphs, skills, and packages in R that are within the scope of the final project. There are also several subcategories in each of them.

187 |

Other categories cover more advanced skills, which may be outside the scope of the final project but are still extremely interesting, useful, and insightful!

188 |

3. Interactive and Web-based Applications”: Using Shiny App in R to create interactive online dashboards

189 |

4. Outside of R”: Data visualization techniques outside of R, most of which are in Python

190 |

5. Parameter Analysis of Visualization Techniques”: Dives into the mathematical foundation behind visualization techniques

191 |

6. Programming Techniques and Tools”: Diverse programming techniques ranging from speeding up codes in R to integrating R with VSCode and Latex

192 |

7. Statistical Analysis and Modeling”: Machine learning, modeling, and inference in R

193 | 194 | 195 | 196 | Back to top
197 | 430 |
431 | 440 | 441 | 442 | 443 | -------------------------------------------------------------------------------- /docs/welcome.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | EDAV Fall 2023 Community Contribution - Welcome! 11 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 62 | 63 | 64 | 65 | 66 | 67 | 68 |
69 |
70 | 83 | 96 |
97 | 98 |
99 | 100 | 159 |
160 | 161 | 164 | 165 |
166 | 167 |
168 |
169 |

Welcome!

170 |
171 | 172 | 173 | 174 |
175 | 176 | 177 | 178 | 179 |
180 | 181 | 182 |
183 | 184 |

This webpage contains community contributions for Fall 2023 EDAV class at Columbia University.

185 |

There are 108 videos in total that are divided into 7 categories.

186 |

For the final project, you’re welcome to first check out “1. Data Collection and Preprocessing” and “2. Data Visualization Techniques”, as these are all videos about the basic graphs, skills, and packages in R that are within the scope of the final project. There are also several subcategories in each of them.

187 |

Other categories cover more advanced skills, which may be outside the scope of the final project but are still extremely interesting, useful, and insightful!

188 |

3. Interactive and Web-based Applications”: Using Shiny App in R to create interactive online dashboards

189 |

4. Outside of R”: Data visualization techniques outside of R, most of which are in Python

190 |

5. Parameter Analysis of Visualization Techniques”: Dives into the mathematical foundation behind visualization techniques

191 |

6. Programming Techniques and Tools”: Diverse programming techniques ranging from speeding up codes in R to integrating R with VSCode and Latex

192 |

7. Statistical Analysis and Modeling”: Machine learning, modeling, and inference in R

193 | 194 | 195 | 196 | Back to top
197 | 430 |
431 | 440 | 441 | 442 | 443 | -------------------------------------------------------------------------------- /docs/project6.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | EDAV Fall 2023 Community Contribution - 7. Statistical Analysis and Modelling 11 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 62 | 63 | 64 | 65 | 66 | 67 | 68 |
69 |
70 | 83 | 96 |
97 | 98 |
99 | 100 | 159 |
160 | 161 | 171 | 172 |
173 | 174 |
175 |
176 |

7. Statistical Analysis and Modelling

177 |
178 | 179 | 180 | 181 |
182 | 183 | 184 | 185 | 186 |
187 | 188 | 189 |
190 | 191 |
192 |

1: Time Series Analysis

193 |

1. Time Series Analysis Using Forecast Library (Mon/Wed)

194 |

2. Introduction to ARIMA, SARIMA and Parameters Selection (Tues/Thurs)

195 |

3. Detecting Outliers in Time Series: ‘anomaly’, ‘tsoutliers’, and ‘checkresiduals’ (Tues/Thurs)

196 |
197 |
198 |

2: Miscellaneous

199 |

4. Sentiment Analysis in Tweets about Fast Fashion (Mon/Wed)

200 |

5. Causal Inference with Sandwich Package in R (Mon/Wed)

201 |

6. Caret Package for Machine Learning (Tues/Thurs)

202 |

7. Correlation between Google keyword searches and stock prices via regression (Tues/Thurs)

203 |

8. Modelling of Body Fat Percentage (Tues/Thurs)

204 | 205 | 206 |
207 | 208 | Back to top
209 | 442 |
443 | 452 | 453 | 454 | 455 | --------------------------------------------------------------------------------