Modérateur : Groupe des modérateurs
Code : Tout sélectionner
i <- 4
j <- 5
outer(1:i, 1:j, function(x, y) sprintf("%d M %d", x, y))
Code : Tout sélectionner
## Définir les constantes :
n <- 4 # nombre de lignes
p <- 5 # nombre de colonnes
## Bâtir la matrice :
x <- paste0(rep(1:n, times = p),
"M",
rep(1:p, each = n))
A <- matrix(x, ncol = p, nrow = n)
print(A)
Code : Tout sélectionner
A<-matrix(rep(0,n*n),n,n)
for (i in 1:n){
for (j in 1:n){
if(i==j)
A[i,j]<-paste(i,j,sep="M")
else if (i>j)
A[i,j]<-paste(i,j,sep="N")
else
A[i,j]<-paste(i,j,sep="P")
}
}
Code : Tout sélectionner
tab <- expand.grid(i=1:n, j=1:n)
tab$M <- "M"
tab$M[tab$i>tab$j] <- "N"
tab$M[tab$i<tab$j] <- "P"
res <- do.call(paste0, tab[c(1,3,2)])
mat <- matrix(character(), n , n)
mat[as.matrix(tab[,1:2])] <- res
Par contre je ne partage pas le ressentiment sur les boucles qui est souvent véhiculés à tort, ou véhiculer parce que les boucles ne sont pas utilisées efficacement. Ce qui ne va pas c'est d'en imbriquer pas mal (comme ici mais une boucle for seule si bien codée est peut-être très efficace, voir meme plus que d'autres commandes.
Retourner vers « Questions en cours »
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité