I have a data set like this:
 dt <- tibble(
  TRIAL = c("A", "A", "A", "B", "B", "B", "C", "C", "C"),
  GYF = c(1, 2, 3, 1, 6, 3, 2, 3, 1),
  AD = c(7.54, 1.564, 10, 0.89, 0, , , 1.5, 0)
)
 
# # A tibble: 9 x 3
#   TRIAL    GYF    AD
#   <chr> <dbl> <dbl>
# 1 A         1   7.54  
# 2 A         2   1.564
# 3 A         3   10  
# 4 B         1   0  .89
# 5 B         6   0  
# 6 B         3     
# 7 C         2     
# 8 C         3   1.5
# 9 C         1   0  
This is what I want to achieve: I want all values of GYF and AD column to be stacked and having the Header and the Trial Value in the first column.
# # A tibble: 9 x 4
#   TRIAL    Trait    Traitvalue
#   <chr> <chr> <dbl> 
# 1 A        GYF   1
# 2 A        GYF   2
# 3 A        GYF   3
# 4 A        AD   7.54
# 5 A        AD   1.564
# 6 A        AD   10
# 7 B        GYF   1
# 8 B        GYF   6
# 9 B        GYF   3
# 10 B      AD   0.89
# 11 B      AD    0
# 12 B      AD    
# 13 C      GYF   2      
# 14 C      GYF  3    1.5
# 15 C      GYF  1     0
# 16 C      AD 
# 17 C      AD 1.5
#18 C       AD 0
 
     
    