Nice example.
> x <- structure(c(1961, 1961, 1961, 1961, 1, 1, 1, 1, 1, 2, 3
+ , 4, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
+ , 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27
+ , 28, 29, 30, 31, 32, 33, 34, 35, 36)
+ , .Dim = c(4L, 12L)
+ , .Dimnames = list(NULL, c("year", "month", "day", "A", "B", "C"
+ , "D", "E", "F", "G", "H", "I"))
+ )
> xdf <- as.data.frame(x)
> xdf
year month day A B C D E F G H I
1 1961 1 1 1 5 9 13 17 21 25 29 33
2 1961 1 2 2 6 10 14 18 22 26 30 34
3 1961 1 3 3 7 11 15 19 23 27 31 35
4 1961 1 4 4 8 12 16 20 24 28 32 36
> require(tidyr)
> require(dplyr)
> xdf %>% gather(station, discharge, -year, -month, -day)
year month day station discharge
1 1961 1 1 A 1
2 1961 1 2 A 2
3 1961 1 3 A 3
4 1961 1 4 A 4
5 1961 1 1 B 5
6 1961 1 2 B 6
7 1961 1 3 B 7
8 1961 1 4 B 8
9 1961 1 1 C 9
10 1961 1 2 C 10
11 1961 1 3 C 11
12 1961 1 4 C 12
13 1961 1 1 D 13
14 1961 1 2 D 14
15 1961 1 3 D 15
16 1961 1 4 D 16
17 1961 1 1 E 17
You might also like some of these