Hello,
I have a txt file that contains multiple equations which are separated by ";".
Some equations are splited into 2 records because they are very long.
In the example below eq1 and eq3 are not separated but eq2 is:
eq1 = x1*a+ x2*b + x3*c ;
eq2 = x1*a + x2*b +
x3*c + x4*d ;
eq3 = x1*a + x2*b + x3*c ;
I want to create a dataset with only 1 variable that contains one row for each equations like that :
VAR1
eq1=eq1 = x1*a+ x2*b + x3*c
eq2 = x1*a + x2*b +x3*c + x4*d
eq3 = x1*a + x2*b + x3*c
The basic code to import is :
data temp;
infile "txt_file" dlm=";" ;
input var1 :$1000.;
run;
I tried many things but nothing works. Every time SAS creates 2 rows for the splitted equations. I know with this exemple you can just add a data step after the import and concatenate the 2 separeted row for the equation 2 but I cannot do that with my real data.
Thank you for your help.
Try this:
data want;
infile datalines4 truncover;
input equation $400.;
do while (substr(equation,length(equation),1) ne ';');
input add_line $200.;
equation = catx(' ',equation,add_line);
end;
drop add_line;
datalines4;
eq1 = x1*a+ x2*b + x3*c ;
eq2 = x1*a + x2*b +
x3*c + x4*d ;
eq3 = x1*a + x2*b + x3*c ;
;;;;
run;
Try this:
data want;
infile datalines4 truncover;
input equation $400.;
do while (substr(equation,length(equation),1) ne ';');
input add_line $200.;
equation = catx(' ',equation,add_line);
end;
drop add_line;
datalines4;
eq1 = x1*a+ x2*b + x3*c ;
eq2 = x1*a + x2*b +
x3*c + x4*d ;
eq3 = x1*a + x2*b + x3*c ;
;;;;
run;
It works ! Thank you.
April 27 – 30 | Gaylord Texan | Grapevine, Texas
Walk in ready to learn. Walk out ready to deliver. This is the data and AI conference you can't afford to miss.
Register now and lock in 2025 pricing—just $495!
Still thinking about your presentation idea? The submission deadline has been extended to Friday, Nov. 14, at 11:59 p.m. ET.
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.
Ready to level-up your skills? Choose your own adventure.