
Alexandre, boa tarde! Não sei se entendi direito, mas fiz uma tentativa. Se a ideia servir dá pra colocar na forma de uma função. ### <code r> treat <- gl(4, 15, labels = paste("t", 1:4, sep="")); treat # Fatores # Variables set.sed(124) sp <- cbind(c(rnorm(10, 5, 0.25), rnorm(50, 2.5, 0.25)), rnorm(60, 2.5, 0.25), c(rnorm(10, 12, 0.25), rnorm(50, 2.5, 0.25)), rnorm(60, 2.5, 0.25)) colnames(sp) <- c("sp1", "sp2", "sp3", "sp4") head(sp) #Criação da matriz de contrastes TI <- model.matrix(~ treat-1) head(TI) f <- length(levels(treat)) comb <- t(combn(1:f, 2)) n <- nrow(comb) contr2 <- NULL for (x in 1:n) { i <- comb[x, 1] j <- comb[x, 2] tmp <- list(TI[,i] - TI[,j]); names(tmp) <- paste0("TI",i, "_", j) contr2 <- c(contr2, tmp) } contr2 head(do.call(cbind, contr2)) # TI1_2 TI1_3 TI1_4 TI2_3 TI2_4 TI3_4 # 1 1 1 1 0 0 0 # 2 1 1 1 0 0 0 # 3 1 1 1 0 0 0 # 4 1 1 1 0 0 0 # 5 1 1 1 0 0 0 # 6 1 1 1 0 0 0 ### </code> ================================================ Éder Comunello Agronomist (UEM), MSc in Environ. Sciences (UEM) DSc in Agricultural Systems Engineering (USP/Esalq) Brazilian Agricultural Research Corporation (Embrapa) Dourados, MS, Brazil |<O>| ================================================ GEO, -22.2752, -54.8182, 408m UTC-04:00 / DST: UTC-03:00