R Data Frames

A Data Frame is a list of vectors of equal length. It has two-dimensional array like structure, in which the number of elements should be same in each column and the row names should be unique.

Creating a Data Frames

A data frame is created by data.frame() function. Here is a simple example of a data frame.

df <- data.frame(id = c(1:4), name = c("Mary", "Soy", "Alexa", "Roxy"), class = 5)
print(df)
  id  name class
1  1  Mary     5
2  2   Soy     5
3  3 Alexa     5
4  4  Roxy     5

In a data frame, each column can have different types than the other columns, but all the elements of a column should have same data type.


Get Data Frame Structure

R provides str() function to get the structure of the data frame.

data <- data.frame(id = c(1:4), name = c("Mary", "Soy", "Alexa", "Roxy"), class = 5)
str(data)
'data.frame':   4 obs. of  3 variables:
 $ id   : int  1 2 3 4
 $ name : Factor w/ 4 levels "Alexa","Mary",..: 2 4 1 3
 $ class: num  5 5 5 5




Access Data Frame Elements

The following code extracts the name and age columns of the data frame.

data <- data.frame(id=c(1:4),
+ name=c('Mary','Soy','Alexa','Roxy'),
+ age=c(7,8,7,9),
+ class=5)
> data
  id  name age class
1  1  Mary   7     5
2  2   Soy   8     5
3  3 Alexa   7     5
4  4  Roxy   9     5

result <- data.frame(data$name,data$age)
result
  data.name data.age
1      Mary        7
2       Soy        8
3     Alexa        7
4      Roxy        9

Get Length of a Data Frame

The length() function is used to get the length of a data frame.

data <- data.frame(id = c(1:4), name = c("Mary", "Soy", "Alexa", "Roxy"), age = c(7, 8, 7, 7), class = 5)
length(data)
[1] 4




Add Element to Data Frame

Add a New Column

We can add a new column to the data frame either by assigning the new value to a data frame index (increase one to the last index) or by giving a name to the new index, like in the given code, we have added a new element name 'section' in the existing data frame.

data <- data.frame(id = c(1:4), name = c("Mary", "Soy", "Alexa", "Roxy"), age = c(7, 8, 7, 7), class = 5)

#Add new element 'section'
data$section <- c('A','B','A','C')
print(data)

Add New Row

R provides rbind() function to add new rows in the existing data frame. For this, we have to create a second data frame and merge to the existing one. In the below example, we have an existing data frame 'data1' and a new data frame 'data2'. We merge the second data frame to the first one with the help of rbind() function.

data1 <- data.frame(id = c(1:4),name = c("Mary", "Soy", "Alexa", "Roxy"),age = c(7, 8, 7, 7),class = 5, c('A','B','A','C'))
# New data frame
data2 <- data.frame(id=5,name="Smith",age=9,class=6,section='B')

# Bind the data frames
data <- rbind(data1,data2)
print(data)






Read more articles


General Knowledge



Learn Popular Language