> data.frame(a = matrix(apply(df, 1, c), ncol = 1))
## a
## 1 a
## 2 1
## 3 A
## 4 b
## 5 2
## 6 B
## 7 c
## 8 3
## 9 C
## 10 d
## 11 4
## 12 D
## 13 e
## 14 5
## 15 E
Here are another couple of options,
> data.frame(a = do.call(rbind, as.list(t(df))))
## or
> data.frame(a = c(apply(df, 1, c)))
as.vector
and as.matrix
will also work in place of c
in the apply
call above.