Я подозреваю, что ОП на самом деле хочет:
> matrix(x, ncol = 2, byrow = TRUE)
[,1] [,2]
[1,] 10 20
[2,] 30 40
[3,] 50 60
[4,] 70 80
[5,] 90 100
или, возможно,
> split(x, rep(c("A","B"), length(x)/2))
$A
[1] 10 30 50 70 90
$B
[1] 20 40 60 80 100
, который может быть легко преобразован в фрейм данных ...