BookmarkSubscribeRSS Feed
jo1
Obsidian | Level 7 jo1
Obsidian | Level 7

Hi,

I have been given a txt file that has multiple tables of data in it- each is a matrix of the connectivity of a network. I want to import each table, sum the number of segments each is attached to (to identify which segments are at the top of the network relative to the others) and then append them into a single table.  The number of columns and rows changes in each of the tables (as different parts of the network have varying numbers of segments).  

 

I've done it for a single file (example below):

 

,DBS3B1,30-R12884,30-R68054,30-R1542,30-R1585,30-R1587,30-R1540,30-R1541,30-R188,30-R336,30-R68935,30-R2882,30-R2570,30-R3197,30-R3008,30-R13213
DBS3B1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
30-R12884,,1,,,,,,,,,,,,,,
30-R68054,,,1,1,,,,,,,,,,,,
30-R1542,,,,1,,,,,,,,,,,,
30-R1585,,,,,1,1,1,1,,,,,,,,
30-R1587,,,,,,1,1,1,,,,,,,,
30-R1540,,,,,,,1,,,,,,,,,
30-R1541,,,,,,,,1,,,,,,,,
30-R188,,,,,,,,,1,1,1,1,1,1,1,1
30-R336,,,,,,,,,,1,1,,,,,
30-R68935,,,,,,,,,,,1,,,,,
30-R2882,,,,,,,,,,,,1,1,1,1,
30-R2570,,,,,,,,,,,,,1,,,
30-R3197,,,,,,,,,,,,,,1,,
30-R3008,,,,,,,,,,,,,,,1,
30-R13213,,,,,,,,,,,,,,,,1

 

Part of the OUTPUT:

DBS3B1 16
30-R12884  1
30-R13213  1
30-R1540  1
30-R1541  1
30-R1542  1
30-R1585  4
30-R1587  3
30-R188  8

The issue that I'm having is that they have given me a single file with a matrix for each feeder of the network  - here is an example of the format showing 2 feeders (tables) - the first row of the new table is ,CBP142 33kV,30-R3893,30-F3890 - can someone given me a start on how to get SAS to read this and identify that there are 2 tables, my actual file has hundreds of matrixs so I can't do it manually.

 

,CBP142 22kV,30-R11970,30-R12880,30-FL62656,30-F3945
CBP142 22kV,1,1,1,1,1
30-R11970,,1,1,1,
30-R12880,,,1,,
30-FL62656,,,,1,
30-F3945,,,,,1
,CBP142 33kV,30-R3893,30-F3890
CBP142 33kV,1,1,1
30-R3893,,1,1
30-F3890,,,1

 

I'm using SAS Enterprise Guide 7.1

1 REPLY 1
Reeza
Super User

I don't think you need to do that. SAS has BY group processing so you can read it all into one data set and keep the 'groups' multiple tables in one data set but uniquely identified. Or at least give you a starting point to create your output. 

 

While reading a file, you can get the length of the record. It seems the first line, the length is typically longer so if you read the line, check the length then you can make a judgement of whether this is the start or end of a file. 

 

I would suggest providing a sample text file with at least two tables and showing the exact expected output from those files. 

 

 

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 1 reply
  • 821 views
  • 0 likes
  • 2 in conversation