Hi,
Here is an example of one implementation:
library(dplyr)
#Original data
myDf = data.frame(x = 1:5, y = runif(5), z = LETTERS[1:5])
#Add blank row with same ID
newDf = rbind(myDf, myDf %>% mutate(y = NA, z = NA)) %>% arrange(x)
newDf
#> x y z
#> 1 1 0.81425440 A
#> 2 1 NA <NA>
#> 3 2 0.06461431 B
#> 4 2 NA <NA>
#> 5 3 0.21991112 C
#> 6 3 NA <NA>
#> 7 4 0.24515161 D
#> 8 4 NA <NA>
#> 9 5 0.43092217 E
#> 10 5 NA <NA>
#Add duplicate row with same ID
newDf = rbind(myDf, myDf) %>% arrange(x)
newDf
#> x y z
#> 1 1 0.81425440 A
#> 2 1 0.81425440 A
#> 3 2 0.06461431 B
#> 4 2 0.06461431 B
#> 5 3 0.21991112 C
#> 6 3 0.21991112 C
#> 7 4 0.24515161 D
#> 8 4 0.24515161 D
#> 9 5 0.43092217 E
#> 10 5 0.43092217 E
Created on 2020-09-09 by the reprex package (v0.3.0)
Hope this helps,
PJ