Go back to Home# Inserting rows to data frame at any position [R]

While I was carring out a text analysis, a was stuck at a point where I had to insert multiple rows to a dataframe at different indexes. Though this seems to be easy I couldn't find any solution to this online.

So a little backstory, I have a dataframe with title of abstract in each row. Now I wanted to add author names after each title row which is stored as a list .The number of authors may vary.

This is the author list with with 209 elements and each element has names of different authors who contributed to that abstract.

**Let me show you how I did this.**

I used tibble package. Its a package for data.frame manipulation.

`library(tibble)`

add_row() is a builtin function of tibble package that lets you add one row after/before an index.

Now for this purpose, I used a nested for loop. first for loop will iterate from 1 to the length of the author list (1:209).

```
for (each in 1:length(insert_count$charac_count)) {
}
```

The second for loop will iterate over the count of elements in each row of the list.For example first row of the list has 4 author names. So the Iteration will be from 1 to 4.

```
for (in_row in 1:(insert_count$charac_count[each])) {
}
```

Now inside this nested for loop is the ** add_row()** function.

`author_insti<-add_row(author_insti,.after = which(author_insti$s.no==each))`

** author_insti** is the data.frame to which I want to add rows to.

`.after =`

`which()`

The whole code

```
for (each in 1:length(insert_count$charac_count)) {
for (in_row in 1:(insert_count$charac_count[each]-1)) {
author_insti<-add_row(author_insti,.after = which(author_insti$s.no==each))
}
}
```

**and viola! This is how it looks after inserting rows**

now just use simple replacement to add values to these rows.

Same thing can be done to insert columns by using add_column() function