From 0743cbd3aaa23b31fc5443dc35e490319fa2a65e Mon Sep 17 00:00:00 2001 From: Hadley Wickham Date: Thu, 8 Dec 2022 15:48:59 +1300 Subject: [PATCH] Wrangle -> import (#1177) * Wrangle -> import * Update import.qmd * Update import.qmd * Update import.qmd * Update import.qmd Co-authored-by: Mine Cetinkaya-Rundel --- _quarto.yml | 2 +- diagrams/data-science/import.png | Bin 0 -> 48807 bytes import.qmd | 41 ++++++++++++++++++++++++++++ wrangle.qmd | 44 ------------------------------- 4 files changed, 42 insertions(+), 45 deletions(-) create mode 100644 diagrams/data-science/import.png create mode 100644 import.qmd delete mode 100644 wrangle.qmd diff --git a/_quarto.yml b/_quarto.yml index 203b852..93189ed 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -53,7 +53,7 @@ book: - missing-values.qmd - joins.qmd - - part: wrangle.qmd + - part: import.qmd chapters: - spreadsheets.qmd - databases.qmd diff --git a/diagrams/data-science/import.png b/diagrams/data-science/import.png new file mode 100644 index 0000000000000000000000000000000000000000..eee37c6f9f13fc751e0ea5e261b77a2d5b043eb3 GIT binary patch literal 48807 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%0A!6YSapaoA(dGBn^In7Og*y)(|2Wy{J@_Vy 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 +#| Data import is the beginning of the data science process; without +#| data you can't do data science! +#| fig-alt: > +#| Our data science model with import highlighted in blue. +#| out.width: NULL + +knitr::include_graphics("diagrams/data-science/import.png", dpi = 270) +``` + +In this part of the book you'll learn how to access data stored in the following ways: + +- In @sec-import-spreadsheets, you'll learn how to import data from Excel spreadsheets and Google Sheets. + +- In @sec-import-databases, you'll learn about getting data out of a database and into R (and you'll also learn a little about how to get data out of R and into a database). + +- In @sec-arrow, you'll learn about Arrow, a powerful tool for working with out-of-memory data, particularly when it's stored in the parquet format. + +- In @sec-rectangling, you'll learn how to work with hierarchical data, including the the deeply nested lists produced by data stored in the JSON format. + +- In @sec-scraping, you'll learn web "scraping", the art and science of extracting data from web pages. + +There are two important tidyverse packages that we don't discuss here: haven and xml2. +If you working with data from SPSS, Stata, and SAS files, check out the **haven** package, . +If you're working with XML data, check out the **xml2** package, . +Otherwise, you'll need to do some research to figure which package you'll need to use; google is your friend here 😃. diff --git a/wrangle.qmd b/wrangle.qmd deleted file mode 100644 index 9b8ff1a..0000000 --- a/wrangle.qmd +++ /dev/null @@ -1,44 +0,0 @@ -# Wrangle {#sec-wrangle .unnumbered} - -```{r} -#| results: "asis" -#| echo: false -source("_common.R") -``` - -In this part of the book, you'll learn about data wrangling, the art of getting your data into R in a useful form for further work. -In some cases, this is a relatively simple application of a package that does data import. -But in more complex cases it encompasses both tidying and transformation as the native structure of the data might be quite far from the tidy rectangle you'd prefer to work with. - -```{r} -#| label: fig-ds-wrangle -#| echo: false -#| fig-cap: > -#| Data wrangling is the combination of importing, tidying, and -#| transforming. -#| fig-alt: > -#| Our data science model with import, tidy, and transform, highlighted -#| in blue and labelled with "wrangle". -#| out.width: NULL - -knitr::include_graphics("diagrams/data-science/wrangle.png", dpi = 270) -``` - -This part of the book proceeds as follows: - -- In @sec-rectangling, you'll learn how to get plain-text data in rectangular formats from disk and into R. - -- In @sec-import-spreadsheets, you'll learn how to get data from Excel spreadsheets and Google Sheets into R. - -- In @sec-import-databases, you'll learn about getting data into R from databases. - -- In @sec-arrow, you'll learn about Arrow, a powerful tool for working with large on-disk files. - -- In @sec-rectangling, you'll learn how to work with hierarchical data that includes deeply nested lists, as is often created we your raw data is in JSON. - -- In @sec-scraping, you'll learn about harvesting data off the web and getting it into R. - -There are two important tidyverse packages that we don't discuss here: haven and xml2. -If you working with data from SPSS, Stata, and SAS files, check out the **haven** package, . -If you're working with XML, check out the **xml2** package, . -Otherwise, you'll need to do some research to figure which package you'll need to use; google is your friend here 😃.