Help using Base SAS procedures

proc infomaps into a dataset?

Posts: 58

proc infomaps into a dataset?

Hi to all,
I was looking for something quite simple, but I believe it's not yet it possible to output the list of items from proc infomaps into a dataset sas? Something not so different the the out option of the proc would be a nice feature.

Super Contributor
Super Contributor
Posts: 3,174

Re: proc infomaps into a dataset?

Just did a Google advanced search against the SAS support website. Have you looked here? Reference the LIBNAME engine

And, here too:

Scott Barry
SBBWorks, Inc.

Recommended Google advanced search argument, this topic/post:

information maps libname engine
Posts: 58

Re: proc infomaps into a dataset?

Yep, I've already read it and I'm using it...but the proc contents it's not sufficient for what I'm looking for (for example, it doesn't show into which folder an item is contained...while proc infomaps does)...I was just looking for a way to output the "list infomap dataitems" output in a dataset, in a manner similar of the proc contents...
Respected Advisor
Posts: 3,777

Re: proc infomaps into a dataset?

ods output?
Posts: 58

Re: proc infomaps into a dataset?

That's would be wonderful, however I can't find the correct table (I've tried to follow this paper, but I couldn't find the ods table for the proc infomap, using ods trace on, even with listing).
Super Contributor
Super Contributor
Posts: 3,174

Re: proc infomaps into a dataset?

Share your SAS code being used - you mentioned that you are using the LIBNAME engine and you've read the guide/DOC. Let's see *all* of your code that's not working, please.

Scott Barry
SBBWorks, Inc.
Posts: 58

Re: proc infomaps into a dataset?

here is the code using the libname:

libname TEST infomaps user='dtiles' pw='******' metaserver='icodevsas02' mappath='Shared Data/StatSS' preserve_tab_names=yes;

options validvarname=any;

proc contents data=test.famiglie_es;


This is the result:

SAS 14:30 Saturday, February 13, 2010 1

La procedura CONTENTS

Nome data set TEST.famiglie_es Osservazioni .
Tipo elemento DATA Variabili 9
Engine INFOMAPS Indici 0
Data creazione . Lunghezza osservazione 0
Data ultima modifica . Osservazioni eliminate 0
Protezione Compresso NO
Tipo data set Ordinato NO
Rappresentazione dei dati Predefinito
Codifica Default

Elenco alfabetico di variabili e attributi

N. Variabile Tipo Lungh Etichetta

8 Anno Alfanum 32 Anno
1 Istat Alfanum 200 ISTAT
2 Istat2 Alfanum 32 Comune
3 Istat2_2 Alfanum 32 Unione
4 Istat2_3 Alfanum 32 Zona Altimetrica
9 N__famiglie_unipersonali Num 8 N° famiglie unipersonali
7 Numcomponenti Alfanum 2 Numero componenti
5 Numero_Di_Famiglie_Unipersonali Num 8 Numero famiglie
6 Residenti_In_Famiglie_Unipersona Num 8 Numero residenti


In the information map the variables are inserted into a folder, but I don't see the name as shown on the doc (folder/name of the data item).
The other code is this one:


ods trace on /listing;

proc infomaps
open infomap "famiglie_es" mappath="/Shared Data/StatSS";

ods trace off;


In this case, I don't get the dataset that I should use with ods output...
Posts: 8,743

Re: proc infomaps into a dataset?

I don't want to discourage you from continuing the thread in the SAS Procedures forum, however PROC INFOMAPS is a rather specialized procedure which is used in the context of the Enterprise BI Server installation as part of the SAS Enterprise Intelligence Platform (also known as the BI Platform).

The Web Report Studio forum might be a better place to post your PROC INFOMAPS question. That forum is monitored by the developers of Web Report Studio and since Information Maps are one of the major data sources for Web Report Studio reports, you are more likely to find folks in that forum who know PROC INFOMAPS.

Many Base SAS concepts do not apply with PROC INFOMAPS. For example, PROC INFOMAPS is somewhat related to PROC DATASETS. PROC DATASETS acts on the descriptor portion of a SAS dataset. PROC INFOMAPS acts on the Metadata for an Information Map. However, that is where the similarity ends. For example, you can do this with PROC DATASETS:
ods trace on/label;
proc datasets library=sashelp;
contents data=class;
ods trace off;


and in the SAS log, after the step is finished, you will see the output objects created by the DATASETS procedure. If you use the same technique (ODS TRACE ON/OFF) with PROC INFOMAPS and you do not see any output objects listed in the SAS log, it is entirely possible that interaction with the Metadata on Information Maps is done via a different mechanism than ODS and that PROC INFOMAPS does not use an ODS output object. There are other SAS procedures that do not use standard output objects and it is possible that PROC INFOMAPS falls into this category.

At any rate, the Web Report Studio forum might be a better place to post PROC INFOMAPS questions.

Posts: 1

proc infomaps into a dataset?


i m facing the same issue, i 'm trying to use the EXPORT function in the PROC INFOMAPS and read it through a XML MAP in order to keep the data structure and get the dataitems and expression values.

Elsewhere you could try to parse the log from PROC INFOMAPS(LIST) to get the values you need.



SAS Employee
Posts: 31

proc infomaps into a dataset?

Have you looked at using the SQL Dictionary Tables for the INFOMAPS LIBNAME engine? The tables contain additional information on the information map (including the folder path in which the item is contained).

Occasional Contributor
Posts: 19

Re: proc infomaps into a dataset?


I just recently had this problem myself. You can put the output from the log into a rudimentary dataset using the code below:

path = %sysfunc(pathname(work)); /*find out the work directory of current session*/

%put &path;

printto log="&path/temp.log" new; /*Create a new log file in the work directory*/


proc infomaps;

open infomap "<Infomapname>" mappath = <map location in SAS internal foldr system>";



printto log = log; /*Go back to a new log window*/


/*Input log fiel from infomap into a dataset*/

data infomap_metadata;

     infile "&path/temp.log" dsd dlm = '`'; /*Nothing in the file is dlm = '`' so whole                                                   row will be in one column*/

     input log:$1000.;  /*I want the whole row in one column so I use a large value*/

     if index(log,":") > 0; /*Get rid of rows without good data*/


That gets you a dataset that can be manipulated.


Ask a Question
Discussion stats
  • 10 replies
  • 7 in conversation