# ベクトルから対を作る関数 make.pair <- function(x, all=F){ res <- data.frame() for(i in 1:length(x)){ x.1 <- x[i] # 片方 x.sub <- x[-i] for(j in 1:length(x.sub)){ if(all==T) i <- 0 # all=T の場合は全組み合わせ if(j>=i){ x.2 <- x.sub[j] # もう片方 res <- rbind(res, data.frame(mate.1=x.1, mate.2=x.2)) } } } res } # 使用方法 x <- 1:10 make.pair(x) # 重複の組み合わせは無し make.pair(x, all=T) # 全ての組み合わせ