Hola, Estoy tratando de crear una matriz cuadrada, binaria y no tengo idea por dónde comenzar. Los datos que tengo son patentes e inventores por patente, las patentes las identifico por su código y a los inventores por nombre y también los tengo codificados. Deseo hacer una matriz de nxn en donde los renglones son inventores de la A a la Z y columnas son los mismos inventores de la A a la Z, las entradas de la matriz corresponderán a 1 si el inventor A tiene una patente con el inventor K?L?M, cualquier otra situación será cero. Evidentemente la matriz debe tener ceros en la diagonal pues el inventor B no puede patentar algo con el inventor B. Pues bien, intenté hacerlo en excel con tablas dinámicas pero no me permite poner la misma variable (inventores) en renglones y columnas. Pensé que se puede hacer en R, pero no tengo idea por dónde empezar, nisiquiera cuál sería la mejor forma de ordenar los datos. Si pudieran ayudarme sugiréndome algún manual o algún ejemplo para comenzar, se los agradezco de antemano. Saludos. Rolando Valdez
Hola Rolando, Podrias adaptar lo siguiente: set.seed(10) X <- matrix(sample(0:1, 100, replace = TRUE), ncol = 10) colnames(X) <- LETTERS[1:10] X Y <- X >= 1 Y <- apply(Y, 2, as, "numeric") #boolean matrix rownames(Y) <- rownames(X) Z <- t(Y) %*% Y #adjacency matrix Z[Z >= 1] <- 1 diag(Z) <- 0 Z Saludos, Jorge.- 2014-06-14 0:08 GMT+10:00 Rolando Valdez <rvaldezr@gmail.com>:> Hola, > > Estoy tratando de crear una matriz cuadrada, binaria y no tengo idea por > dónde comenzar. > > Los datos que tengo son patentes e inventores por patente, las patentes > las identifico por su código y a los inventores por nombre y también los > tengo codificados. > > Deseo hacer una matriz de nxn en donde los renglones son inventores de la > A a la Z y columnas son los mismos inventores de la A a la Z, las entradas > de la matriz corresponderán a 1 si el inventor A tiene una patente con el > inventor K...L...M, cualquier otra situación será cero. Evidentemente la matriz > debe tener ceros en la diagonal pues el inventor B no puede patentar algo > con el inventor B. > > Pues bien, intenté hacerlo en excel con tablas dinámicas pero no me > permite poner la misma variable (inventores) en renglones y columnas. Pensé > que se puede hacer en R, pero no tengo idea por dónde empezar, nisiquiera > cuál sería la mejor forma de ordenar los datos. > > Si pudieran ayudarme sugiréndome algún manual o algún ejemplo para > comenzar, se los agradezco de antemano. > > Saludos. > > Rolando Valdez > > _______________________________________________ > R-help-es mailing list > R-help-es@r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >[[alternative HTML version deleted]]
Hola, no encuentro el momento en el que se relacionan los inventores, es decir, lo que relaciona a dos o más inventores es la patente. Primero, ¿cómo debo ordenar los datos? Tengo 1813 número de patentes, es decir, la matriz es de dimension 1813 x 1813. Tengo varios órdenes en los datos, por ejemplo, el primer arreglo es por patente, en las columnas tengo ?no. de patente?, ?inventor 1?, ?inventor 2?, ?inventor 3??? ?inventor 13?, y en las filas tengo números de patente. En las entradas tengo nombre del inventor. Otro arreglo que tengo es mediante una tabla dinámica que hice en donde tengo por columnas ?nombre de inventor?, ?inventor 1?, ?inventor 2???. ? inventor 13?. En los renglones tengo nombres de inventor y en las entradas tengo 1 y 0. Saludos. El 13/06/2014, a las 09:14, Jorge I Velez <jorgeivanvelez en gmail.com> escribió:> Hola Rolando, > > Podrias adaptar lo siguiente: > > set.seed(10) > X <- matrix(sample(0:1, 100, replace = TRUE), ncol = 10) > colnames(X) <- LETTERS[1:10] > X > > Y <- X >= 1 > Y <- apply(Y, 2, as, "numeric") #boolean matrix > rownames(Y) <- rownames(X) > Z <- t(Y) %*% Y #adjacency matrix > Z[Z >= 1] <- 1 > diag(Z) <- 0 > Z > > Saludos, > Jorge.- > > > 2014-06-14 0:08 GMT+10:00 Rolando Valdez <rvaldezr en gmail.com>: > Hola, > > Estoy tratando de crear una matriz cuadrada, binaria y no tengo idea por dónde comenzar. > > Los datos que tengo son patentes e inventores por patente, las patentes las identifico por su código y a los inventores por nombre y también los tengo codificados. > > Deseo hacer una matriz de nxn en donde los renglones son inventores de la A a la Z y columnas son los mismos inventores de la A a la Z, las entradas de la matriz corresponderán a 1 si el inventor A tiene una patente con el inventor K?L?M, cualquier otra situación será cero. Evidentemente la matriz debe tener ceros en la diagonal pues el inventor B no puede patentar algo con el inventor B. > > Pues bien, intenté hacerlo en excel con tablas dinámicas pero no me permite poner la misma variable (inventores) en renglones y columnas. Pensé que se puede hacer en R, pero no tengo idea por dónde empezar, nisiquiera cuál sería la mejor forma de ordenar los datos. > > Si pudieran ayudarme sugiréndome algún manual o algún ejemplo para comenzar, se los agradezco de antemano. > > Saludos. > > Rolando Valdez > > _______________________________________________ > R-help-es mailing list > R-help-es en r-project.org > https://stat.ethz.ch/mailman/listinfo/r-help-es >Rolando Valdez