[R-es] Crear matriz binaria

Rolando Valdez rvaldezr en gmail.com
Vie Jun 13 20:32:02 CEST 2014


Hola,

Esta es una tabla dinámica que cree, en donde los renglones son los inventores y las columnas son patentes, las entradas de la matriz tienen 1 en aquellos inventores que participan por patente.

https://www.dropbox.com/s/b8gx0hei6w91ko0/tabla_din.xlsx

Esta es otra tabla es un arreglo parecido al de arriba, sólo que los renglones son patentes y las columnas son número de inventores, tienen 1 en donde participan inventores en la patente.

https://www.dropbox.com/s/xpi0hescm1xm58c/tabla_din2.xlsx

Este es otro arreglo donde sólo hay tres columnas, patentes, número de inventor e inventor.

https://www.dropbox.com/s/rmmgiswmbppt68w/datos_col.csv


El 13/06/2014, a las 10:27, Jorge I Velez <jorgeivanvelez en gmail.com> escribió:

> Hola Rolando,
> 
> Podrias enviarnos una submatriz de esos datos?   Quizas tusdatos[1:10, 1:10]?   Creo que es mas facil trabajar sobre ello.  
> 
> Gracias,
> Jorge.-
> 
> 
> 
> 2014-06-14 1:10 GMT+10:00 Rolando Valdez <rvaldezr en gmail.com>:
> 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
> 
> _______________________________________________
> R-help-es mailing list
> R-help-es en r-project.org
> https://stat.ethz.ch/mailman/listinfo/r-help-es
> 

Rolando Valdez



Más información sobre la lista de distribución R-help-es