7.5 Creating Data Frames
There are many ways to create data frames in R. Here we will introduce just two ways.
7.5.1 Creation from Vectors
Whenever you have vectors of the same length, you can combine them into a data frame, using the data.frame()
function:
<- c("Dorothy", "Lion", "Scarecrow")
n <- c(58, 75, 69)
h <- c(12, 0.04, 18)
a <- data.frame(name = n, height = h, age = a)
ozFolk ozFolk
## name height age
## 1 Dorothy 58 12.00
## 2 Lion 75 0.04
## 3 Scarecrow 69 18.00
Note that at the time of creation you can provide the variables with any names that you like. If later on you change your mind about the names, you can always revise them:
names(ozFolk)
## [1] "name" "height" "age"
names(ozFolk)[2] <- "Height" # "height" was at index 2"
ozFolk
## name Height age
## 1 Dorothy 58 12.00
## 2 Lion 75 0.04
## 3 Scarecrow 69 18.00
7.5.2 Creation From Other Frames
If two frames have the same number of rows, you may combine their columns to form a new frame with the cbind()
function:
<- data.frame( color = c("blue", "red", "yellow"),
ozMore desire = c("Kansas", "courage", "brains"))
cbind(ozFolk, ozMore)
## name Height age color desire
## 1 Dorothy 58 12.00 blue Kansas
## 2 Lion 75 0.04 red courage
## 3 Scarecrow 69 18.00 yellow brains
Similarly if two data frames have the same number and type of columns then we can use the rbind()
function to combine them:
<- data.frame(
ozFolk2 name = c("Toto", "Glinda"),
Height = c(12, 66), age = c(3, 246)
)rbind(ozFolk, ozFolk2)
## name Height age
## 1 Dorothy 58 12.00
## 2 Lion 75 0.04
## 3 Scarecrow 69 18.00
## 4 Toto 12 3.00
## 5 Glinda 66 246.00
Note: cbind()
and rbind()
work for matrices, too.