Простое заявление vapply должно сработать:
vapply(row_split,function(x){
a<-numeric(4)
a[x]=1
a
},numeric(4))
Результат:
block_1 block_2 block_3
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 1 0
[4,] 0 0 1
Вам нужно будет перенести один из них, но это должно сработать.