Je viens de lire que la vectorisation augmente les performances et diminue considérablement le temps de calcul, et dans le cas de if(), le meilleur choix est ifelse().Comment vectoriser de si ifelse avec plusieurs instructions?
Mon problème est que je suis un peu si les déclarations dans une boucle, et chaque instruction if contient plusieurs missions, comme ce qui suit:
x <- matrix(1:10,10,3)
criteria <- matrix(c(1,1,1,0,1,0,0,1,0,0,
1,1,1,1,1,0,0,1,1,0,
1,1,1,1,1,1,1,1,1,1),10,3) #criteria for the ifs
output1 <- rep(list(NA),10) #storage list for output
for (i in 1:10) {
if (criteria[i,1]>=1) {
output1[[i]] <- colMeans(x)
output1[[i]] <- output1[[i]][1] #part of the somefunction output
} else {
if(criteria[i,2]>=1) {
output1[[i]] <- colSums(x)
output1[[i]] <- output1[[i]][1] #the same
} else {
output1[[i]] <- colSums(x+1)
output1[[i]] <- output1[[i]][1] #the same
}}}
Comment puis-je traduire en ifelse?
Merci d'avance!
S'il vous plaît en revue [mcve ] –
Merci! Évalué et mis à jour –