If you don't mind for loop:
ddf
X1 X2 X3 X4
x1 a b c
x2 d e
x3 f g h i
x4 j k l
nddf = ddf
for(i in 1:nrow(ddf))
nddf[i,] = sort(ddf[i,], na.last=T)
nddf
X1 X2 X3 X4
x1 a b c
x2 d e
x3 f g h i
x4 j k l
If you do not want to sort:
rowfn = function(rr){
rr2 = rr; j=1
for(i in 1:length(rr)) if(!is.na(rr[i])){ rr2[j] = rr[i] ; j = j+1 }
if(j<(length(rr)+1)) for(k in j:length(rr)) rr2[k] = NA
rr2
}
ddf
X1 X2 X3 X4
x1 a b c
x2 d e
x3 f g h i
x4 j k l
nddf = ddf
for(i in 1:nrow(ddf)) nddf[i,] = rowfn(ddf[i,])
nddf
X1 X2 X3 X4
x1 a b c
x2 d e
x3 f g h i
x4 j k l