I am working with the R programming language.
I am starting with these 3 data frames - these frames have different numbers of columns and different column names:
df_1 = data.frame(col1 = c("A", "B", "C"), col2 = c(2,4,6), col3 = c(5, "B", "F"))
df_2 = data.frame(col4 = c(5,6,7), col5 = c("A", "D", "Z"))
df_3 = data.frame(col6 = c("dog", "cat"), col7 = c("bear", "wolf"), col8 = c("lion", "tiger"), col9 = c("horse", "pig"), col10 = c("shark", "whale"))
My Question: Using these 3 data frames, I am trying to get the following output ("final") where columns from 3 data frames are stacked on top of each other based on their positions :
 final
  new_col_1 new_col_2 new_col_3 new_col_4 new_col_5 new_col_6
1         A         2         5      <NA>      <NA>      <NA>
2         B         4         B      <NA>      <NA>      <NA>
3         C         6         F      <NA>      <NA>      <NA>
4         5         A      <NA>      <NA>      <NA>      <NA>
5         6         D      <NA>      <NA>      <NA>      <NA>
6         7         Z      <NA>      <NA>      <NA>      <NA>
7       dog      bear      <NA>      lion     horse     shark
8       cat      wolf      <NA>     tiger       pig     whale
I tried to use the advice from this question here (Combine two data frames by rows (rbind) when they have different sets of columns) to solve my problem :
library(gtools)
smartbind(df_1, df_2, df_3)
    col1 col2 col3 col4 col5 col6 col7  col8  col9 col10
1:1    A    2    5   NA <NA> <NA> <NA>  <NA>  <NA>  <NA>
1:2    B    4    B   NA <NA> <NA> <NA>  <NA>  <NA>  <NA>
1:3    C    6    F   NA <NA> <NA> <NA>  <NA>  <NA>  <NA>
2:1 <NA>   NA <NA>    5    A <NA> <NA>  <NA>  <NA>  <NA>
2:2 <NA>   NA <NA>    6    D <NA> <NA>  <NA>  <NA>  <NA>
2:3 <NA>   NA <NA>    7    Z <NA> <NA>  <NA>  <NA>  <NA>
3:1 <NA>   NA <NA>   NA <NA>  dog bear  lion horse shark
3:2 <NA>   NA <NA>   NA <NA>  cat wolf tiger   pig whale
However, this code is not giving me the desired results - can someone please tell me what I am doing wrong and how I can fix this?
Thanks!
 
     
     
    