Create Data Frame Row by Row in R (2 Examples)
In this tutorial, I’ll illustrate how to construct a data frame by adding more and more rows in the R programming language.
Table of contents:
You’re here for the answer, so let’s get straight to the examples!
Example 1: Create Data Frame Row by Row Manually
Example 1 explains how to manually build up a data frame row by row. For this, we first have to create an empty data frame in R:
data1 <- data.frame(x1 = numeric(), # Create empty data frame x2 = character(), x3 = numeric(), stringsAsFactors = FALSE) data1 # Print data frame to console # [1] x1 x2 x3 # <0 rows> (or 0-length row.names)
The previous R code has constructed a data frame with zero rows and three columns. Note that we have already specified the data type of each variable.
Next, we can use square brackets (i.e. [1, ]) and the list function to insert the first row to our empty data frame.
The list that we are inserting needs to have the same length as the number of columns in our empty data frame and the data types of the list elements have to be the same as we have specified for the empty data frame (i.e. numeric, character, and numeric).
data1[1, ] <- list(5, "x", 7) # Create first row of data frame data1 # Print data frame to console # x1 x2 x3 # 1 5 x 7
Have a look at the previous output of the RStudio console: It shows that our updated data frame has one row.
We can now continue this process by adding another row at the second row index position:
data1[2, ] <- list(3, "aaa", 2) # Add second row data1 # Print data frame to console # x1 x2 x3 # 1 5 x 7 # 2 3 aaa 2
Our new data frame has two rows.
As you have seen in this example, we can append more and more rows to our data frame manually.
However, depending on the size of the final data frame this can be a very time consuming process. The next example therefore explains how to automatize the process of adding data frame rows.
Example 2: Create Data Frame Row by Row Using for-Loop
Example 2 shows how to construct a data frame row by row using a for-loop. For this, we first have to create an empty data frame (as in Example 1):
data2 <- data.frame(x1 = numeric(), # Create empty data frame x2 = character(), x3 = numeric(), stringsAsFactors = FALSE)
Now, we can run a for-loop that adds another row in each iteration of the loop:
for(i in 1:5) { # Initialize for-loop list_i <- c(i, letters[i], i^3) # Create some values for this row data2[i, ] <- list_i # Add values at the bottom of data frame }
Have a look at the final data frame that was created within the for-loop:
data2 # Print data frame to console # x1 x2 x3 # 1 1 a 1 # 2 2 b 8 # 3 3 c 27 # 4 4 d 64 # 5 5 e 125
Our final data frame has five rows – Looks good!
Video, Further Resources & Summary
I have recently published a video on my YouTube channel, which shows the R programming syntax of this article. You can find the video below.
Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.
If you accept this notice, your choice will be saved and the page will refresh.
Furthermore, you may want to have a look at the related posts on statisticsglobe.com.
- Create List of Data Frames
- Convert Values in Column into Row Names of Data Frame
- Apply Function to Every Row of Data Frame or Matrix
- rbind Function in R
- Convert Row Names into Column of Data Frame
- R Programming Examples
This article illustrated how to create a data frame row by row in R. If you have any additional questions, let me know in the comments.
Statistics Globe Newsletter