Rで2つを1組ごとにシャッフル.
入力例:(1,2),(3,4),(5)の並びは保存したままシャッフル
c(1,2,3,4,5)
出力例
> pare_shuffle(c(1,2,3,4,5,6))
[1] 1 2 5 6 3 4
> pare_shuffle(c(1,2,3,4,5,6))
[1] 5 6 3 4 1 2
> pare_shuffle(c(1,2,3,4,5,6))
[1] 3 4 1 2 5 6
> pare_shuffle(c(1,2,3,4,5,6))
[1] 5 6 1 2 3 4
関数
##Function pare_shuffle<-function(cc){ if(length(cc)%%2==1){ ccc<-cc[1:(length(cc)-1)] index<-length(ccc)/2 j<-sample(1:index,replace=F) jj<-0 jj[seq(1,length(ccc)-1,2)]<-(2*j)-1 jj[seq(2,length(ccc),2)]<-(2*j) l<-c(ccc[jj],cc[length(cc)]) }else{ ccc<-cc[1:(length(cc))] index<-length(ccc)/2 j<-sample(1:index,replace=F) jj<-0 jj[seq(1,length(ccc)-1,2)]<-(2*j)-1 jj[seq(2,length(ccc),2)]<-(2*j) l<-c(ccc[jj]) } l } #Example pare_shuffle(c(1,2,3,4,5)) pare_shuffle(c(1,2,3,4,5)) pare_shuffle(c(1,2,3,4,5))