My data.frame df1
looks like this:
A NA NA B NA NA C NA NA
1 2 3 4 5 6 7 8 9
I want it to look like this:
A 1
A 2
A 3
B 4
B 5
B 6
C 7
C 8
C 9
Any ideas?
Suppose you have a data.frame like this:
df <- data.frame(matrix(c("A", NA, NA, "B", NA, NA, "C", NA, NA, 1:9), byrow = TRUE, nrow = 2))
> df
X1 X2 X3 X4 X5 X6 X7 X8 X9
1 A <NA> <NA> B <NA> <NA> C <NA> <NA>
2 1 2 3 4 5 6 7 8 9
Using tidyr
:
df %>%
t() %>%
as.data.frame() %>%
fill(V1, .direction = "down")
gives you
V1 V2
1 A 1
2 A 2
3 A 3
4 B 4
5 B 5
6 B 6
7 C 7
8 C 8
9 C 9