Próbowałem tutaj kilku proponowanych rozwiązań. Ale to nie zadziałało w moim przypadku. Mam kod tutaj:Ustaw przekątną macierzy na zero w R
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)
Chcę ustawić wartość przekątnej jako zero. Wygląda na to, że kod użyty w dwóch ostatnich liniach nie działa w moim przypadku.
Również chciałbym stosować nazwę pliku w a
i zapisaniu go jako AB_Files_Whirr_127.csv Próbowałem użyć
write.csv(cr,file = paste("CR_", a,".csv")
ale nic nie pojawia się w moim katalogu.
wyjście próbki dla 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
dziękuję, rozwiązanie przekątnej działa dla mnie, ale plik nie pojawia się w moim katalogu roboczym ... – user1676484
Edytowałem post w tym samym czasie, kiedy go przeczytałeś. Rozwiązanie z 'paste0 (" CR_ ", infile," .csv ")' powinno z pewnością działać. Jeśli nie, upewnij się, że polecenie 'paste0' zwraca znak skalarny. – Backlin
to tylko proste rozwiązanie dla diag. głupi ja! tak czy inaczej, powiedzmy, mam wiele plików, to znaczy, że muszę wymienić plik infile (file = paste0 ("CR_", infile, ".csv") z ścieżką do pliku? IS jest poprawny? – user1676484