ID var1 var2 t0 t1 ... t100 y_t0 y_t1 ... y_t100
A 10 blue 0 1 100 1% 3% ... 20%
B 9 green 0 1 100 2% 4% ... 19%
C 8 pink 0 1 100 1% 6% ... 22%
Where ID, var1 and var2 are the variables I want to keep like that, and t0 to t100 are time (always the same) and y_t0 to y_t100 are the measures at that same time.
I want to ggplot (geom_point) Y_time function of time but as this isn't in row i need to reshape that dataset (I thought using gather but I don't really see how to do with this amount of variables).
gather() and spread() are obsolete as they are confusing everyone. I would suggest using tidyr's pivot_longer() and it will give you exactly what you need. You can check the code below:
P.S. a better data example would help a lot so people will not spend time inputting the values manually. You can check more on how to do that at the link below: Tidyverse
#> # A tibble: 12 x 5
#> ID var1 var2 measurement_time measurement_value
#> <chr> <dbl> <chr> <chr> <dbl>
#> 1 A 10 blue t0 0
#> 2 A 10 blue t1 1
#> 3 A 10 blue t2 2
#> 4 A 10 blue t100 100
#> 5 B 9 green t0 0
#> 6 B 9 green t1 1
#> 7 B 9 green t2 2
#> 8 B 9 green t100 100
#> 9 C 8 pink t0 0
#> 10 C 8 pink t1 1
#> 11 C 8 pink t2 2
#> 12 C 8 pink t100 100