Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding multiple NA rows to a data frame

Tags:

r

na

dplyr

rbind

I wanted to calculate something using a loop. The loop should go more than the number of my observations. For this reason, I want to first add NA rows to my data frame. Let's say my data frame is mtcars data. How can I add 10 NA rows in the mtcars data? The add_row()function from dplyr helps me to add only one NA row. Using rbind() also didn't help to add multiple rows.I probably need to loop this one too. But maybe there is an easy solution.

like image 937
user115916 Avatar asked Dec 10 '25 04:12

user115916


1 Answers

Alternatives that start with the base frame itself:

base R

mt <- mtcars[1:3,]
rbind(mt, mt[0,][rep(NA, 11),])
#        mpg cyl disp  hp drat    wt  qsec vs am gear carb
# 1     21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
# 2     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
# 3     22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
# NA      NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# NA.1    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# NA.2    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# NA.3    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# NA.4    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# NA.5    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# NA.6    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# NA.7    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# NA.8    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# NA.9    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# NA.10   NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA

dplyr

library(dplyr)
mt %>%
  slice(rep(1, 11)) %>%
  mutate(across(everything(), ~ NA)) %>%
  bind_rows(mt, .)
#     mpg cyl disp  hp drat    wt  qsec vs am gear carb
# 1  21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
# 2  21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
# 3  22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
# 4    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# 5    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# 6    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# 7    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# 8    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# 9    NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# 10   NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# 11   NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# 12   NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# 13   NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
# 14   NA  NA   NA  NA   NA    NA    NA NA NA   NA   NA
like image 61
r2evans Avatar answered Dec 11 '25 22:12

r2evans



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!