A lot of these comments follow on my earlier comment about expanding your explanations to make this work better for self-directed learning. In a lot of these cases, I think we need to explain the arguments for the function more thoroughly. Your examples show what they do, but I think it would be helpful to explain it as well.
Under "Other common and useful functions"/seq(): The text at the end of the line (seq(from = 1, to = 1, by = )) needs more explanation and some corrections. I suggest changing this to: "The numbers inside the ( ) indicate where to start and stop the sequence and what interval to use for the sequence. The example below gives the sequence from 1 to 5 with an interval of 1." Also add the bolded text: "...with a certain sequence of numbers" I'd also suggest using a slightly more complicated example that has something other than by=1. For example: seq(0, 27, by = 3)
Under paste(), add an explanation of the arguments: "Inside the ( ), you should indicate the strings to be pasted together and how you want to strings to be separated. Strings can be separated by any text; common separators are " " (one space), "" (no spaces), and "-" (a dash).
Under paste(), show the output of "You're number 1!"
Under paste(), also mention the paste0() function, just saying that it is a special case of paste() in which there is no separation between the pasted elements (e.g., sep="").
Under substr(), you should indicated the starting vector and the positions within the string to be pulled out, indicated by the starting position and the stopping position.
Under Packages, add some text to the end of this line: "However, anyone can write functions for R that are not part of the base functionality and make it available to other R users in a package". "There are a vast array of packages available that can perform almost any function you might need."
Under Packages: Delete the "it" at the end of the line: Packages must be installed first then loaded before using [it]. You can combine this bullet with the next one, since they're describing the same thing.
Under packages, revise the last bullet to this: "If base R doesn’t have a function you need, just ask Google whether any packages do. Use a search with key words describing what you want the function to do and just add "R package" at the end"
Under Packages, revise the line "It’s not available because we need to install the package first (again, like initially downloading an app)." to "The package is not available because it is not yet installed and loaded. We need to install the package first (again, like initially downloading an app)." Below this, add a line: "There are two ways to install packages: (1) using the graphical interface, and (2) using R code." Then, at the beginning of the next line, say "Using the graphical interface: In the bottom right panel of RStudio..." (Note that the end of this line should say either "Packages tool bar" or "tool bar for Packages"
Below the second Packages window, add a line saying: "To install the package using R code, simply type "install.packages("EnvStats")" and then show that in a code block.
Under "CSV", as you probably know, the link to the "chicago_daily.csv" file is broken.
Under "CSV": do you want to mention how to read a file from a different directory than your working directory? Or is that elsewhere in the training? If it's not elsewhere, why don't you show an example? This will be obvious to some people but not to everyone. Plus there's the issue about using / or \ not \ in R to go over.
Under "Excel", mention that the readxl package is already installed, so you don't need to go through the step of installing it before opening it.
Under Excel: explain the output of head(emissions) a bit - it will be confusing since it's the first time they've seen this. For example, what is a "tibble"? And then explain that it shows the top left portion of the table and then lists the variables that didn't fit in that sneak peak of the table.
Under Quick Data exploration: I've had problems installing and using devtools before, and I'm having problems now. Could you use a more straightforward way to get the chicago_air data? I worry that students will get caught here and waste a lot of time trying to deal with this tangential issue. (My memory is that installing devtools in the past has really messed up other parts of R for me, although I might be misremembering that.
Under Quick Data exploration, at the end of the line: "RStudio has a special function called View() that makes it easier to look at data in a data frame", add "This opens the data frame in a window, allowing you to scroll to see the complete data frame. (Would this be a good place to mention that you can open the data frame in a totally separate window, allowing you to move it to a different screen and look at it while still working in your R script? Or does that fit better later?) Also, do you want to mention that you can do the same thing by clicking on the data frame name in the "Environment" window?
Under "str()" - do you want to mention that you can see this same info in the Environment window?
Add the bolded text to the line "The summary() function is a more robust version of str(). This is useful if you are working with a lot of numeric values, because it will automatically do summary statistics on any numbers in your data.frame."
Under The $ operator, in the first box, the commented out text doesn't match: this is not calculating the mean temperature of the ozone column. Delete. Also, add text saying: "You will frequently need to refer to individual columns/vectors in much of your work."
Since you teach about importing data here, do you also want to show how to export data frames? write.csv or write.table?
A lot of these comments follow on my earlier comment about expanding your explanations to make this work better for self-directed learning. In a lot of these cases, I think we need to explain the arguments for the function more thoroughly. Your examples show what they do, but I think it would be helpful to explain it as well.