He intentado algunas soluciones propuestas aquí. Pero no estaba funcionando para mi caso. Tengo un código, aquí:Establecer diagonal de una matriz a cero en 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)
quiero fijar el valor en diagonal como cero. Parece que el código utilizado en las últimas dos líneas no funciona para mi caso.
Además, me gustaría usado el nombre del archivo en a
y guardado como AB_Files_Whirr_127.csv He intentado utilizar
write.csv(cr,file = paste("CR_", a,".csv")
pero, nada aparece en mi directorio.
ejemplo de salida para 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
gracias, el trabajo en diagonal solución para mí, pero el archivo no se parece en mi directorio de trabajo ... – user1676484
edité el cargo, al mismo tiempo que lo lea probablemente. La solución con 'paste0 (" CR_ ", infile," .csv ")' debería funcionar definitivamente. Si no, asegúrese de que el comando 'paste0' devuelve un carácter escalar. – Backlin
es solo una solución simple para diag. ¡tonto de mí! de todos modos, digamos, tengo archivos múltiples, eso quiere decir que tengo que reemplazar el archivo infile (file = paste0 ("CR_", infile, ".csv") con filepath? ¿Es correcto? – user1676484