core - Comment spécifier le graphe à analyser pour l'action `core` ?

Stratégies de Définition du Graphe d'Entrée

Réponse

Vous pouvez spécifier le graphe d'entrée de deux manières : soit en utilisant le paramètre `graph` si le graphe est déjà chargé en mémoire, soit en fournissant une table de liens via le paramètre `links` et, optionnellement, une table de nœuds via le paramètre `nodes`.
SAS / CASL
proc cas;
   /* Chargement du moteur network */
   loadactionset "network";

   /* Exécution de l'action core via la table de liens */
   action network.core /
      /* 1. Définition de la table source */
      links = {name="Links"}
      
      /* 2. Mapping explicite des variables (Best Practice) */
      linksVar = {
         from = "from", 
         to   = "to"
      }

      /* 3. Paramètres de l'algorithme */
      direction = "UNDIRECTED"  /* A-B est identique à B-A */
      
      /* 4. Tables de sortie */
      outNodes  = {name="KCore_Nodes", replace=TRUE}
      outLinks  = {name="KCore_Links", replace=TRUE};
   run;

   /* Vérification du résultat : A, B, C, D devraient tous avoir un _core_ = 2 */
   table.fetch / table="KCore_Nodes";
quit;
Cette réponse vous a-t-elle aidé ?
Si vous prévoyez d'enchaîner plusieurs analyses sur le même réseau (par exemple : calculer le k-core, filtrer, puis calculer la centralité sur le sous-graphe restant), n'utilisez pas links à chaque fois. Cela forcerait le serveur à reconstruire la topologie du graphe à chaque étape, ce qui est coûteux en CPU et en temps pour les gros volumes (Big Data). Dans ce cas, chargez le graphe une fois avec loadGraph, et référez-le ensuite via le paramètre graph.
core

network

Doc : core