Hey, class, good to see you!
Let’s pick it up where we left off last time.
So, we talked about subsetting a data frame, and concluded it is only natural we also know
how to extend a data frame.
And that is absolutely the case!
What if you need to add a couple of observations to your data, or a new variable?
Well, adding a new variable is easier
than adding an observation, so let’s
start there.
Remember that data frames are lists?
Adding a column happens just like you would expect for lists.
Let’s use the Star Wars box office data frame we created in the beginning.
I would like to add two variables called MarkScreenTime & CarrieScreenTime to see how much screen
time Mark Hamill and Carrie Fisher got per film (these are the guys who play Luke Skywalker
and Princess Leia in the movies).
I already have the vectors ready… so I'm just going to paste them in...
All we need to do now is choose a method for attaching these columns.
We can do it with a dollar sign, like this.
Or with double brackets.
(I will just remove the columns really quickly, so we ca re-add them with the new method now…)
This is the easiest way to remove variables from a data frame, by the way.
Just index the variables you want removed and set it to NULL.
Ok, we are ready to re-add Mark- and CarrieScreenTime, but this time with double brackets.
Alright, awesome!
Finally, you can also use the cbind() function we used to expand matrices.
It will work just as well, with the added benefit that you will be able to quickly add
more than one variable to your data frame.
What did I tell you?
Expanding the variables of a data frame is easy!
That said, let’s learn how to add observations, too 😉
Can you guess where the first tripping stone in adding a row to a data frame comes from?
I will give you a hint: all we needed to do to extend our variables was to create a vector
of values and attach it.
Do you think that’s going to work for rows, too?
Nope, because vectors can only hold values of a single basic type.
Okay!
What we need to do is create a small one-row data frame.
Let’s say I want to add some data about Rogue One: A Star Wars story.
Uh-oh! I have the figures I’ve created my data frame,
but R is still not letting me bind it.
It’s letting me know “names do not match previous names”.
Right!
I should have labelled the variables in my new data frame accordingly.
Let’s mend this and give it another try.
There!
That worked! Fantastic!
To recap, we can add columns to a data frame in three ways, each simpler than the other…
we can use list notations and go for the dollar sign, or the double brackets.
Or we can cbind() a column to the structure.
Rows are more temperamental and we are expected to use rbind() to actually attach a small
data frame to the bottom of the table.
We also need to name our variables with their corresponding names in the table we want to
attach them to.
Great.
That’s it for this lesson, guys!
Play around with some data frames before you get to the actual exercises: R has a decent
collection or preloaded data frames.
Just type data() and it’ll show you what it has in store.
See you next time!
And May the Code Be with You :)