Je suis en train de mettre à jour une variable globale (noms de matrice: "confusion.mat") dans une fonctionR variables globales locales
register.hit <-function(categ){
confusion.mat[categ,categ] = confusion.mat[categ,categ] + 1
}
sapply(intersection.list,register.hit)
données:
confusion.mat <- structure(c(0, 0, 0, 0, 0, 0, 0, 0, 0), .Dim = c(3L, 3L))
intersection.list <- c(1, 2)
cependant, la confusion variable globale .mat n'est pas mis à jour (en mode débogage, j'ai remarqué que la variable locale confusion.mat dans la fonction register.hit est mise à jour correctement). Toute aide appréciée
Pouvez-vous faire un exemple reproductible? Je n'arrive pas à recréer le problème dans 'R'. – Ruben
Ceci est voulu. 'functions' ne devrait pas avoir d'effets secondaires. Utilisez les fonctions like 'apply' si vos fonctions retournent quelque chose. Sinon, restez avec une boucle 'for'. Bien sûr, il pourrait bien y avoir une meilleure solution vectorisée, mais vous ne décrivez pas ce que vous essayez réellement d'accomplir. – Roland
Peut-être que c'est votre objectif? 'diag (confusion.mat) <- seq_len (nrow (confusion.mat))' – Roland