Trucos SAS. Matrices de adyacencia con SAS

5 Ago

SAS no está pensado para el cálculo matricial, pero hay ocasiones en las que hemos de trabajar con ellas. Uno de los casos típicos es la matriz de adyacencia. Se trata de partir de estos datos:

a b
a e
b c
b e
c e
d a

Crear:
  a b c d e
a 0 1 0 1 1
b 1 0 1 0 1
c 0 1 0 0 1
d 1 0 0 0 0
e 1 1 1 0 0

Yo planteo la siguiente metodología:

*CONJUNTO DE DATOS DE PARTIDA;
data original;
input nodo1 nodo2;
datalines;
a b
a e
b c
b e
c e
d a
;run;
*A <-> B;
data original2;
set original original(rename=(nodo1=nodo2 nodo2=nodo1));
run;
*MAXIMOS DE PRESENCIA;
proc sql noprint ;
select distinct 'max(nodo2="'||compress(nodo2)||'") as '||compress(nodo2)||' '
into: instr separated by ","
from original2
order by 1;
*HACEMOS LOS MAXIMOS;
create table matriz as select
nodo1,
&instr.
from original2
group by 1;
quit;

Un método muy sencillo que busca en la matriz de partida el nodo de inicio y el nodo de fin. Creo que se entiende muy bien por eso, y porque estoy casi de vacaciones, no voy a entrar en detalles. Si alguien necesita esos detalles que contacte. Saludos.

2 respuestas a «Trucos SAS. Matrices de adyacencia con SAS»

  1. metodología.

    (Del gr. μέθοδος, método, y -logía).

    1. f. Ciencia del método.

    2. f. Conjunto de métodos que se siguen en una investigación científica o en una exposición doctrinal.

    Sin embargo:

    método.

    (Del lat. methŏdus, y este del gr. μέθοδος).

    1. m. Modo de decir o hacer con orden.

    2. m. Modo de obrar o proceder, hábito o costumbre que cada uno tiene y observa.

    3. m. Obra que enseña los elementos de una ciencia o arte.

    4. m. Fil. Procedimiento que se sigue en las ciencias para hallar la verdad y enseñarla.

    ¡Tanto everis va a resultar perjudicial para su gramática!

  2. Conjunto de métodos que se siguen en una investigación científica o en una exposición doctrinal.

    Doctrina: Enseñanza que se da para instrucción de alguien.

    Si lo que se hace aquí no es metodología entonces vamos a debatir sobre «código libre».

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *