|
|
xi | |
Acknowledgments |
|
xvi | |
|
1 Introduction: Why data journalism? |
|
|
1 | (9) |
|
|
3 | (1) |
|
|
4 | (2) |
|
|
6 | (1) |
|
|
7 | (3) |
|
2 Data, numeracy, and how to bulletproof information |
|
|
10 | (11) |
|
Gaining a better understanding of your data: first steps |
|
|
10 | (2) |
|
What is each row in my data? |
|
|
12 | (1) |
|
Spotting common data problems |
|
|
13 | (3) |
|
Problems with the data universe |
|
|
16 | (1) |
|
Understanding your data: an early checklist |
|
|
17 | (1) |
|
Three ways to talk about your data |
|
|
18 | (3) |
|
3 Where data comes from---and how to get it |
|
|
21 | (14) |
|
|
22 | (1) |
|
|
23 | (1) |
|
Record retention schedules: a guide to what governments keep |
|
|
24 | (2) |
|
Writing an official request |
|
|
26 | (4) |
|
|
30 | (1) |
|
Sticking to what's "gettable" |
|
|
31 | (4) |
|
4 Starting with spreadsheets |
|
|
35 | (16) |
|
Four ways spreadsheets excel |
|
|
35 | (1) |
|
Where spreadsheets (traditionally) lag |
|
|
36 | (1) |
|
Some background on Google Sheets |
|
|
36 | (1) |
|
Getting started with Google Sheets |
|
|
37 | (1) |
|
Basic spreadsheet concepts |
|
|
38 | (3) |
|
Other important interface features |
|
|
41 | (1) |
|
Getting data into Google Sheets |
|
|
42 | (2) |
|
Navigating the data display and controlling its structure |
|
|
44 | (2) |
|
Exploring a data set to learn something new |
|
|
46 | (5) |
|
5 Sort, filter, pivot: The building blocks of data analysis |
|
|
51 | (19) |
|
Reordering your data table with sorting |
|
|
51 | (3) |
|
Focusing on the most relevant information with filter |
|
|
54 | (1) |
|
|
55 | (1) |
|
|
56 | (1) |
|
Working with filtered data |
|
|
57 | (1) |
|
Other things to know about filtering |
|
|
58 | (1) |
|
Summarizing data sets with pivot tables |
|
|
58 | (1) |
|
Finding meaningful groups in your data |
|
|
59 | (1) |
|
|
59 | (2) |
|
Building a simple pivot table from a question |
|
|
61 | (2) |
|
Pivot table summary types |
|
|
63 | (2) |
|
|
65 | (1) |
|
Leaning into the flexibility of pivot tables |
|
|
65 | (2) |
|
|
67 | (1) |
|
More than one way to group data |
|
|
68 | (2) |
|
6 Clean and repair: Techniques for more advanced analysis |
|
|
70 | (16) |
|
The filter menu and frequency tables |
|
|
70 | (2) |
|
Adding columns for cleaned values |
|
|
72 | (2) |
|
Functions to help you clean text |
|
|
74 | (1) |
|
Using functions in a cleaning column |
|
|
75 | (1) |
|
Getting your changes to stick with "Paste Special" |
|
|
75 | (1) |
|
Using more than one function at the same time |
|
|
76 | (1) |
|
Combining and separating cell contents |
|
|
76 | (1) |
|
Using "Split text to columns" |
|
|
77 | (3) |
|
|
80 | (1) |
|
Splitting cells at specific positions: focus on dates |
|
|
81 | (2) |
|
Adding new categories based on a condition |
|
|
83 | (3) |
|
7 Simple tools for everyday data visualization |
|
|
86 | (18) |
|
Common types of visualizations and when to use them |
|
|
86 | (6) |
|
The process of creating a data visualization |
|
|
92 | (5) |
|
Beyond the data visualization: other critical things to consider |
|
|
97 | (1) |
|
Using color in data visualizations |
|
|
98 | (2) |
|
|
100 | (4) |
|
8 Introduction to R and the tidyverse |
|
|
104 | (13) |
|
The best way to work with R |
|
|
105 | (1) |
|
Overview of the RStudio interface for R |
|
|
105 | (2) |
|
Using R: understanding variables |
|
|
107 | (1) |
|
Expanding base R with outside packages |
|
|
108 | (1) |
|
Installing and loading packages within RStudio |
|
|
109 | (2) |
|
Importing a simple data table from CSV |
|
|
111 | (1) |
|
Where is R looking for files? |
|
|
112 | (1) |
|
An example with read_csv () |
|
|
112 | (1) |
|
Data tables, tibbles, and adjusting data types |
|
|
113 | (2) |
|
Putting it all together in an R script |
|
|
115 | (2) |
|
9 Using R for data analysis |
|
|
117 | (22) |
|
Changing the data's column headers |
|
|
118 | (1) |
|
Sorting and filtering data in RStudio and the tidyverse |
|
|
118 | (4) |
|
Using "pipes" in the tidyverse to keep your data analysis straight |
|
|
122 | (1) |
|
Expanding your analysis into new columns |
|
|
123 | (2) |
|
Summarizing a data set by different groups |
|
|
125 | (4) |
|
A tidyverse superpower: joining data sets using a column with shared values |
|
|
129 | (1) |
|
|
130 | (4) |
|
Returning to the crash data: merging it with populations |
|
|
134 | (2) |
|
Joining perils: ending up with duplicated data |
|
|
136 | (1) |
|
|
137 | (2) |
|
10 Making the modern web with HTML and CSS |
|
|
139 | (15) |
|
|
139 | (2) |
|
What you need to create HTML |
|
|
141 | (1) |
|
The parts of an HTML element |
|
|
142 | (1) |
|
Basic webpage structure and other common HTML elements |
|
|
143 | (3) |
|
Where CSS fits in, and how it works with HTML |
|
|
146 | (1) |
|
|
147 | (1) |
|
Some common CSS properties |
|
|
148 | (2) |
|
Giving your CSS selectors more specific targets |
|
|
150 | (1) |
|
Styling HTML based on classes and IDs |
|
|
150 | (2) |
|
|
152 | (2) |
|
11 More advanced CSS: Layouts, Bootstrap, and more |
|
|
154 | (27) |
|
|
155 | (1) |
|
|
155 | (3) |
|
Simple responsiveness for block elements using width |
|
|
158 | (2) |
|
|
160 | (1) |
|
Repositioning a content division element using margins |
|
|
161 | (2) |
|
|
163 | (2) |
|
|
165 | (1) |
|
Shorthand properties for margins, padding, and borders |
|
|
166 | (1) |
|
Content divisions and the semantic web |
|
|
167 | (1) |
|
Creating more complex webpage layouts with the Bootstrap Grid |
|
|
167 | (1) |
|
|
168 | (1) |
|
Adding Bootstrap to your webpage |
|
|
169 | (1) |
|
How the Bootstrap grid works: using containers, rows, and columns |
|
|
169 | (2) |
|
|
171 | (5) |
|
Giving instructions for more than one breakpoint |
|
|
176 | (1) |
|
Aligning and distributing content |
|
|
177 | (2) |
|
|
179 | (2) |
|
|
181 | (4) |
Index |
|
185 | |