tl; dr: Les bibliothèques SAS peuvent-elles être imbriquées les unes dans les autres dans Enhanced Editor Explorer?

Je travaille avec du code qui génère une pléthore d'ensembles de données. Bien qu'il existe de nombreux ensembles de données individuels, ils peuvent être regroupés en différentes catégories. Par exemple, peut-être 30 d'entre eux sont des données entrantes " brutes ", 50 autres sont des résultats d'analyse " " et les 20 restants sont des " intermédiaires " pas.

Actuellement, les 100 ensembles de données résident dans le répertoire Work. Ils ont été bien nommés pour qu'ils apparaissent les uns à côté des autres dans la fenêtre SAS Explorer. Cependant, je préférerais les organiser dans des dossiers.

Une façon de faire est de créer de nouveaux répertoires dans le dossier temporaire Work.

%let dirWORK = %sysfunc(pathname(Work));

options dlcreatedir;

libname raw     "&dirWORK./raw";
libname interm  "&dirWORK./intermediate";
libname results "&dirWORK./results";

En tant que sous-répertoires de Work, ces répertoires et leur contenu seront supprimés à la fin de la session. C'est agréable.

La façon dont les bibliothèques raw, iterm et results apparaissent d'un niveau plus haut dans les "Bibliothèques actives" au lieu de dans le "Contenu de" Travail "n'est pas acceptable. Ce comportement est quelque peu contre-intuitif et maladroit.

  • Existe-t-il un moyen d'afficher les sous-dossiers de Work dans le "Contenu de "Travail" 'dans l'explorateur SAS?
  • Peut-être existe-t-il un autre moyen de séparer les ensembles de données (DCREATE?) Qui fait que la fenêtre de l'explorateur se comporte comme un navigateur de fichiers classique?
sas
3
Lorem Ipsum 25 juil. 2017 à 00:46

2 réponses

Meilleure réponse

Les bibliothèques peuvent contenir beaucoup de choses ... Mais pas d'autres bibliothèques. Vos `` bibliothèques actives '' afficheront toujours votre liste (disponible) de bibliothèques au même niveau, quel que soit l'endroit ou la façon dont elles ont été définies:

enter image description here

Une option si vous souhaitez afficher vos ensembles de données comme un navigateur de fichiers classique consiste à utiliser la fenêtre Explorateur. Cliquez simplement sur Afficher / Explorer et accédez à vos ensembles de données de cette façon.

Par exemple:

%let dirWORK =C:/temp/work;
options dlcreatedir;
libname raw     "&dirWORK./raw";
libname interm  "&dirWORK./intermediate";
libname results "&dirWORK./results";

data raw.test;
set sashelp.class;
run;

enter image description here

3
Allan Bowe 24 juil. 2017 à 22:23

SAS librefs ne sont que des mots simples, donc par définition il n'y a pas d'hérarchie. Vous pourriez essayer d'utiliser des librefs qui les placeront les uns à côté des autres par ordre alphabétique? Peut-être WORKIN, WORKMID, WORKOUT. Ensuite, ils trieraient dans un ordre logique.

Vous pouvez utiliser un explorateur de fichiers pour parcourir la structure de répertoires que vous avez créée, mais je ne pense pas que l'outil SAS Explorer de SAS Display Manager puisse gérer cela.

DMS a un outil d'exploration de fichiers que vous pouvez essayer. Vous pouvez démarrer directement sur votre répertoire WORK actuel en exécutant cette commande à partir de la ligne de commande de n'importe quelle fenêtre, ou via l'instruction DM dans un programme.

exproot dir="%sysfunc(pathname(work))" title="Work Directory"
3
Tom 24 juil. 2017 à 22:30