Jeu de diagonale d'une matrice à zéro dans la R
J'ai essayé quelques une proposition de solution ici. Mais il ne fonctionnait pas pour mon cas.
J'ai un code, ici:
a <- read.table("Whirr_127.csv", header=T, sep=",", row.names=1) # task assignment /people vs task
b <- read.table("Files_Whirr_127.csv", header=T, sep=",", row.names=1) #task vs files
a
b
#calc cr , cr = ta * tf * transpose(ta)
cr <- as.matrix(a) %*% (as.matrix(b) %*% as.matrix(t(b)) %*% as.matrix(t(a)))
cr
#set value to 1, to initialize table
cr[cr>=1]<-1
cr
#identify diagonal matrix, set to zero
cr<-as.matrix(0,ncol=ncol(cr),nrow=nrow(cr))
cr<-diag(cr,x=0)
Je veux mettre de la diagonale de la valeur à zéro. Il semble que le code utilisé dans les deux dernières lignes ne sont pas de travail pour mon cas.
Aussi, j'aimerais utilisé le nom du fichier à a
, et enregistré comme AB_Files_Whirr_127.csv
J'ai essayé d'utiliser
write.csv(cr,file = paste("CR_", a,".csv")
mais rien n'apparaît dans mon répertoire.
exemple de sortie pour le cr:
Adrian Cole Alison Wong Andrei Savu Bruno Dumon Edward J. Yoon Eugene Koontz Jakob Homan Kelvin Kakugawa Kirk True Lars George Soren Macbeth Stu Hood
Adrian Cole 0 0 0 0 0 0 0 0 0 0 0 0
Alison Wong 0 0 0 0 0 0 0 0 0 0 0 0
Andrei Savu 0 0 1 0 0 0 0 0 0 1 1 0
Bruno Dumon 0 0 0 0 0 0 0 0 0 0 0 0
Edward J. Yoon 0 0 0 0 0 0 0 0 0 0 0 0
Eugene Koontz 0 0 0 0 0 0 0 0 0 0 0 0
Jakob Homan 0 0 0 0 0 0 0 0 0 0 0 0
Kelvin Kakugawa 0 0 0 0 0 0 0 0 0 0 0 0
Kirk True 0 0 0 0 0 0 0 0 0 0 0 0
Lars George 0 0 1 0 0 0 0 0 0 1 1 0
Soren Macbeth 0 0 1 0 0 0 0 0 0 1 1 0
Stu Hood 0 0 0 0 0 0 0 0 0 0 0 0
Tibor Kiss 0 0 0 0 0 0 0 0 0 0 0 0
Tom White 0 0 1 0 0 0 0 0 0 1 1 0
Unassigned 0 0 0 0 0 0 0 0 0 0 0 0
Tibor Kiss Tom White Unassigned
Adrian Cole 0 0 0
Alison Wong 0 0 0
Andrei Savu 0 1 0
Bruno Dumon 0 0 0
Edward J. Yoon 0 0 0
Eugene Koontz 0 0 0
Jakob Homan 0 0 0
Kelvin Kakugawa 0 0 0
Kirk True 0 0 0
Lars George 0 1 0
Soren Macbeth 0 1 0
Stu Hood 0 0 0
Tibor Kiss 0 0 0
Tom White 0 1 0
Unassigned 0 0 0
Vous devez vous connecter pour publier un commentaire.
a
ne peut pas être utilisé dans le nom du fichier de sortie que ce n'est pas une variable de caractère, c'est une trame de données.La syntaxe de la
diag
ligne a tendance à regarder drôle de nouvelle R des utilisateurs, mais il est en fait juste une autre syntaxe pour appeler la fonction affectationdiag<-
, c'est à dirediag(x) <- 0
est interprété commediag<-(x, 0)
.Mise à jour: Plusieurs fichiers
Si vous voulez répéter l'opération pour couplé à plusieurs fichiers, vous pouvez le faire.
paste0("CR_", infile, ".csv")
devrait definatelly travail. Si pas, assurez-vous que lepaste0
commande renvoie un caractère scalaire."Whirr_###.csv"
et correspondant"Files_Whirr_###.csv"
cependant, est-ce que le droit?