Skip to content
Prev 201462 / 398506 Next

Split column

Not very elegant but this does the trick:

df <- cbind( var1=c(1,3,2,1,2), var2=c(3,1,1,2,3) )

out <- df
out[ which(df==1, arr.ind=T) ] <- "1&1"
out[ which(df==2, arr.ind=T) ] <- "1&2"
out[ which(df==3, arr.ind=T) ] <- "2&2"

outlist <- apply(out, 2, strsplit, split="&")
do.call( "cbind.data.frame", lapply( outlist, do.call, what="rbind" ) )
   var1.1 var1.2 var2.1 var2.2
1      1      1      2      2
2      2      2      1      1
3      1      2      1      1
4      1      1      1      2
5      1      2      2      2

Please check.

Regards, Adai
Lisaj wrote: