This repository has been archived by the owner on Apr 28, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
04_projects.Rmd
263 lines (131 loc) · 20.8 KB
/
04_projects.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
# Project Gallery
When looking for a job in data science, it's best that those interested in hiring you can get a sense for your work easily on the Internet. By displaying projects you've worked on on your website, hiring managers can quickly see what skills you have and what you're interested in.
Arguably, this could be seen on GitHub (we'll get to this in the next lesson!), and hiring managers will likely look there as well; however, by writing up a short report that tells the whole story for a few of your data science projects, (including visualizations!), and including them on your website, you're making it even easier on hiring managers to see what you can do!
In this lesson, we'll discuss two different ways of displaying your projects on your website, discuss what you'll want to include on your website, and walk through step-by-step of turning one of the projects in this course into a project included on your website.
### Project List
The simplest way to display projects on your website is by including bullet points that link to your projects on GitHub; however, looking through multiple folders on your GitHub to figure out what you did on a project is asking a lot of someone. Thus, while it's better than nothing to include links to your GitHub, you want to make it easier on your readers.
To do this, you'll want to turn your projects into a report or blog post that you'll then publish on your website. By telling a story about your project, including the results in figures and tables, and making what you did in the analysis very clear, you're demonstrating both your technical and communication skills all at once.
In the last lesson on updating your website, we looked at David Robinson's ["about me" section](http://varianceexplained.org/about/). In this lesson, we can see that as he carries out projects, he writes blog posts and posts them to his website.
![David Robinson's Projects](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40b5cac3c2_0_21)
On his website, his most recent posts are displayed, and the contents of each can be found by clicking on any of the titles. Then, visitors to his site can see the story of his analysis!
![Blog posts tell analytical stories](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40b5cac3c2_0_36)
By including links to summaries (blog posts!) of your work on your website, you're helping individuals looking to learn more about your work or simply interested in your analyses
### Project Gallery
Beyond providing links to blog posts, it can sometimes be helpful to provide readers with a visual cue as to what will be included in that link. Rather than a list of your projects, including an image along with the title of the post can be very helpful to attracting readers to your work.
For example, on Nathan Yau's site, [FlowingData.com](flowingdata.com), projects can be searched by topic. Then, images for each post are displayed with the title underneath the project and the first few words from the post displayed underneath the title.
![Projects on Nathan Yau's website](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40b5cac3c2_0_4)
One caveat here is that on this site, Nathan Yau often links to others' work to promote and support their work, so these aren't all his own projects. On your website, when looking for a job, you would want to be sure to include links to your work primarily. You can then use Twitter (we'll talk about this later!) to support and promote others' work, at least while you're looking for a job. Once you're more established (like Nathan Yau), it's OK to include links to others' work on your website, as long as you give them credit, of course!
Another great example of a project gallery can be seen on Mona Chalabi's website. We saw her about me section in the last lesson and learned that she visualizes data using creative and artistic drawings/visualizations. This type of work perfectly lends itself to a project gallery, as the visualizations are the story.
![Mona Chalabi's Project Gallery](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40b68f6f2d_0_0)
However, Mona is also a writer. Her journalism pieces are also listed on her website, in list format! Both project lists and project galleries can be effective ways to share your work on your website!
![Links to Mona Chalabi's Writing](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40b68f6f2d_0_5)
### What To Include
As you're preparing your project gallery, you'll want links to a few blog posts about projects you've worked on. These posts should display your ability to:
* find a dataset
* wrangle a dataset
* explore a dataset
* analyze a dataset
* visualize a dataset
* tell a story
* effective data science communication
You'll want at least a few examples of your work, meaning at least 3 different projects you've worked on. And, you'll want to make sure at least one of these is a project you've come up with and worked on on your own -- you don't want the projects you display to all come from the projects done in this Course Set, although some of them can be!
### What Not To Include
As you're looking for a job, it's best to **avoid criticizing the work of others** in your project gallery. You can certainly use a dataset that someone else has written about previously to do your own analysis; however, your post should *not* tear apart what that other individual did in theirs.
Additionally, remember this is a blog post. (For details about what to include in a blog post, refer back to the [Written and Oral Communication in Data Science](https://leanpub.com/universities/courses/jhu/writtenandoralcommunicationindatascience) course.) This post should tell a story and include details about your analysis, but it **shouldn't include every detail about your analysis**. You should do the analysis and then pare down what you have to only what's necessary to communicate your story to your audience.
Finally, remember that this should demonstrate your skills and abilities. **Do not take code or work from others without properly citing those individuals**. Giving attribution to others' work when deserved is incredibly important. Be sure that all writing and code portrayed are your own in your project gallery actually are your own work.
### Your Final Project
Now that we've seen a few examples of others' projects, let's get down to preparing one project you may want to include in your project gallery! In the last course, one of the quiz questions required you to create a presentation on Google Slides taking what you did in your Final project and turning it into a presentation that you'd present to a technical audience.
Thus, you should have already thought a bit about how you would tell a story about this analysis. We'll use that same project (your Final Project from [Data Analysis](https://leanpub.com/universities/courses/jhu/dataanalysis)) here, but instead of generating a Google Slides presentation, we'll turn this project into a project that you will include on your website!
The link to this page on your website will be required in the quiz for this lesson, so it's best to follow along, create this post, and update your website as you work through this lesson!
#### New Post Setup
In the last lesson, we set up the skeleton for a project on your website, but we didn't include any content in that project at that time. The goal of this lesson is to fill out that section of your website a little more! We'll start by adding your Final Project analyzing the American Time Use Survey Data for this Course Set as a project on your website here.
![Final Project on RStudio Cloud](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40b68f6f2d_0_21)
This write up should take what you did in your final project and turn it into a detailed but clear blog post format for inclusion on your website.
To get started, return to the project on RStudio Cloud for your `blogdown` website. Navigate in the Files tab to `/cloud/project/content/project`. In here you'll see the `atus-survey.md` file we created in the last lesson.
![`atus-survey.md`](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_0)
But, at this point, if you want to take what you did in your final project and turn it into a blog post, you probably want an R Markdown (`.Rmd`) file, not a Markdown (`.md`) file. That's ok! We'll walk through how to create a new post now!
First, make sure that you are in `/cloud/project` and not your version controlled website directory before attempting to make a new post.
Then, click on the "Addins" button on the menu along the top. Select "New post" from the drop-down menu.
![New Post](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_6)
In the pop-up "New Post" box that appear, enter the "Title" of your final project. For this lesson, we've titled this post "ATUS Survey Data", but as we've discussed in previous lessons, this is *not* a very good title. A better title would concisely convey the findings of the analysis. Be sure that your project title is *better* than "ATUS Survey Data."
After deciding on a good title, include your name in the "Author" box and today's Date in the "Date" box. Then, importantly **change Subdirectory to project**. This ensures that the new post goes in your `project` directory and not your `post` directory.
After that, you can choose a few Categories and Tags to include on your website. Leave "Archetype" as is. The name of the file and the slug will fill in automatically. Leave those defaults alone.
Finally **change the format to "R Markdown (.Rmd)".
![New Post Filled In Form](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_11)
This will generate an R Markdown document where you'll be able to get started! Once this information is all complete, click "Done"
![New RMarkdown Post](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_19)
#### Project Content
With the file ready, we'll need to determine the general framework for this blog post. This means determining what sections to include in the project and what figures/results you'll present to tell your story. It's a good idea to place possible section headers in the document before you start adding content.
A general framework for this project and most analyses blog posts *could* be the following:
![General Framework](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40b5cac3c2_0_106)
You could choose to use this framework or modify it to best tell the story of your analysis. But, regardless of what sections you include, you want to be sure to **explain why you're doing the analysis** and **what question you'll be answering in this post** in the introduction.
Following this, it's often a good idea to explain **where the data came from** and display the code you used to get the data into RStudio Cloud. The Exploratory Data Analysis section should explain **how you wrangled the data** and maybe show an explanatory plot or two.
**How you analyzed the data** should be explained briefly after the data are explained. The Results section is the most important - this should summarize your findings, including figures and tables to guide the reader and help them understand your results.
The sub-headers within the results section should tell the reader **what your results were**.
Finally, a conclusion should pull everything together.
Within your R Markdown document, this framework would be entered as follows:
![Framework in R Markdown](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40b5cac3c2_0_126)
Before we get to adding content, a reminder that you can run `blogdown::serve_site()` at any point in time to preview the changes to your site that you've made. After saving those changes to the R Markdown file, the homepage would look as follows.
![Post on Homepage](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_25)
If you were to click on this post, you would be able to preview the skeleton of your project that you just made!
![Project Preview](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_30)
We'll get to filling in the content for the actual post; however, let's take a step back to make the project on the homepage look more like the skeleton post we created before. We want to add a picture to the preview on the homepage, include a caption on the homepage post, and include a picture on the post itself. These changes will all be made in the YAML at the top of your R Markdown document.
![YAML edits](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_40)
```
summary: 'Analysis of 2016 American Time Use Survey (ATUS) Data'
image_preview: 'bubbles.jpg'
header:
image: 'bubbles.jpg'
```
We'll explain the YAML edits here:
* `summary`: the caption text on the post on your homepage
* `image_preview`: the image included with your post on your homepage
* `header: image:` the image included in the header of your project post itself.
There are a number of other appearance edits you can make in the YAML of your R Markdown document, but these are all we'll cover for now. We're including the default `bubbles.jpg` image for now, but for each project you should **change this to an image that makes sense for that project.** The image you want to include should be stored in `/cloud/project/static/img`.
![where to save images](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_46)
Now when you preview your projects on your homepage, the project looks just like the skeleton post we created previously!
![Projects updates preview](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_52)
At this point, we can delete the `atus-survey.md` project file because we're going to include just the `.Rmd` file on our website.
![Delete `atus-survey.md`](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_57)
#### Content
With the skeleton for your post in your R Markdown document ready and the appearance on your website ready to go, it's time to include text and code throughout the post. For example, in the data section you'd explain where the data came from, describe how many observations are in the data and what variables you're most interested in.
![Data section](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40b5cac3c2_0_131)
You'd also include a code chunk that would read the data into R. Note that you'll likely want to include the data in the project website directory (`/cloud/project/content/project`). You *can* create subdirectories within this directory (for example: `/cloud/project/content/project/atus_survey`) to help keep things organized.
If we were to save and preview this file at this point on your website, it would be pretty bare bones, but you would be able to see all the changes you've made. Note that you do *NOT* have to Knit this file, as you would normally. `blogdown` does that automatically for you when you preview the site!
![Skeleton with data section started](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40b5cac3c2_0_136)
And, as you include more content for what you did in this analysis, it will become a full-fledged post. Be sure that there is text accompanying all code, figures and table, to explain to your readers what is being done throughout the project.
*Adapt* the text and code from your projects into this document by using the code you've already written but adding text to explain to a reader what you've done. You can copy sentences and code chunks, but do *not* simply copy everything currently in your project `.Rmd` document because there is a lot of explanatory text explaining to you what to do in the project. The goal of this post is to tell a story about your analysis. Make sure all text included in this document and every code chunk helps tell that story.
Before finishing **change the picture** included in the header and on your homepage preview to something that matches the project. It could be a figure included in your analysis or a photo of yours (or that is freely-available) that has something to do with your analysis. Make sure that this photo is uploaded into `/cloud/project/static/img`
#### Proofread
After you're happy with your post, it's *always* a good idea to proofread your writing for typos and errors.
### Push to GitHub
Once you're happy with these changes, remember that in order for them to be seen on your website, all the contents of your `/cloud/project/public/` directory have to be added to your website directory. To do this, first delete all of the current files (**except for the hidden files!**) in `/cloud/project/username.github.com`.
![Delete old website files](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_83)
Then, select all the files in `cloud/project/public.` Click "More" and select "Move" from the drop down menu.
![Move files](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_64)
Select the Folder for your website in the pop-up "Choose Folder" window. Click "Choose."
![Select website](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_71)
You're now ready to push all your changes to GitHub. Make sure you're in the correct version-controlled directory (`/cloud/project/username.github.com/`) and then add, commit, and push your changes:
```
cd /cloud/project/username.github.com/
git add .
git commit -m "add projects tab"
git push
```
Your changes will now be viewable on your website!
![Changes to website](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/export/png?id=1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI&pageid=g40fa7f7471_0_93)
You'll also want to create projects or posts for your Data Tidying and Data Visualization Projects on your website. That won't be required of this lesson, but it is a good idea to make sure that your work is represented clearly on your website
### Your *Own* Project
So far in this Course set, you've been told what data to work with, how to explore it, and what questions to answer. *However*, when looking for a job, hiring managers will want to see that you have completed projects on your own. At this point, it's your job to use *all* the skills you've learned throughout this Course Set to add a project that is *all your own* to your website.
To be considered complete, this project must demonstrate your ability to:
* form a data science question
* get data
* tidy data
* explore data
* analyze data
* visualize data
* communicate your analysis effectively
Carry out a data science project on your own about a topic you care about or find interesting! Then **add this project to your `blogdown` website**. Push the changes to GitHub and include the link to your project in the quiz below.
### Slides and Video
[Automated Videos](https://www.youtube.com/watch?v=BoR_E2G9yTo)
* [Slides](https://docs.google.com/presentation/d/1iE2IIefyB93TZkQWCZN5FORTj02SvCHZPMoqv6A8ngI/edit?usp=sharing)