Is there a way to convert row data to column data in R
df <- data.frame(week = c(1,2,3), ps = c("Y","N","Y"), '2022' = c(3,4,5), '2021' = c(2,7,9),'2020' = c(2,9,4))
df
week ps X2022 X2021 X2020
1 1 Y 3 2 2
2 2 N 4 7 9
3 3 Y 5 9 4
Expected output
week ps year value
1 1 Y 2022 3
2 2 Y 2022 4
3 3 Y 2022 5
4 1 Y 2021 2
5 2 Y 2021 7
6 3 Y 2021 9
7 1 Y 2020 2
8 2 Y 2020 9
9 3 Y 2020 4