## seperate a single column values to each varibles

Solved
Frequent Contributor
Posts: 89

# seperate a single column values to each varibles

hi i have a simple data set then how can i separate the data set values to each variable like dep_id ,dept_name,dep_qty.Please help ?

data a;

input info \$1 - 50;

cards;

101 pencil 57

102 parker pen 24

103 hp studion shuffle n 10

104 samsung galexy ace 29

run;

i already solved the problem.But i need to know any easy way of doing the task simply.

i put my code on below..Please do check it and make some replies

data b;

set a;

pdt_id=input(scan(info,1,' '),3.);

xyz=substr(info,5);

pdt_nam=length(substr(info,5));

name=input(substr(xyz,1,pdt_nam-2),\$20.);

pdt_qty=input(substr(xyz,anydigit(xyz)),2.);

label  pdt_id=Product Id

name=Product Name

pdt_qty=Product Quantity;

drop pdt_nam;

drop info;

drop xyz;

runn;

Krishnachandran

Accepted Solutions
Solution
‎07-22-2014 09:48 AM
Super User
Posts: 10,766

## Re: seperate a single column values to each varibles

Posted in reply to KrishnaChandra

```data a;
input info \$ 1-50;
cards;
101 pencil 57
102 parker pen 24
103 hp studion shuffle n 10
104 samsung galexy ace 29
;
run;
data b;
set a;
dep_id =scan(info,1,' ');
dept_name=substr(info,findc(info,' ')+1,findc(trim(info),' ','b') - length(dep_id)-1 );
dep_qty=substr(info,findc(trim(info),' ','b')+1);
run;

```

OR this one :

```data a;
input info \$ 1-50;
cards;
101 pencil 57
102 parker pen 24
103 hp studion shuffle n 10
104 samsung galexy ace 29
;
run;
data b;
set a;
dep_id =scan(compress(info,' ','kd'),1,' ');
dept_name=compress(info,' ','ka');
dep_qty=scan(compress(info,' ','kd'),-1,' ');
run;

```

Xia Keshan

Message was edited by: xia keshan

All Replies
Super User
Posts: 10,211

## Re: seperate a single column values to each varibles

Posted in reply to KrishnaChandra

You might want to introduce a dedicated delimiter into the input data, like the colon. Then you can use the dlm= option in the infile statement and let the input statement do the separation for you.

data want;

infile cards dlm=':'

format

pdt_id 3.

pdt_name \$20.

pdt_quantity 2.

;

input

pdt_id

pdt_name

pdt_quantity

;

datalines;

101encil:57

102arker pen:24

103:hp studion shuffle n:10

104:samsung galexy ace:29

;

run;

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
How to convert datasets to data steps
How to post code
Solution
‎07-22-2014 09:48 AM
Super User
Posts: 10,766

## Re: seperate a single column values to each varibles

Posted in reply to KrishnaChandra

```data a;
input info \$ 1-50;
cards;
101 pencil 57
102 parker pen 24
103 hp studion shuffle n 10
104 samsung galexy ace 29
;
run;
data b;
set a;
dep_id =scan(info,1,' ');
dept_name=substr(info,findc(info,' ')+1,findc(trim(info),' ','b') - length(dep_id)-1 );
dep_qty=substr(info,findc(trim(info),' ','b')+1);
run;

```

OR this one :

```data a;
input info \$ 1-50;
cards;
101 pencil 57
102 parker pen 24
103 hp studion shuffle n 10
104 samsung galexy ace 29
;
run;
data b;
set a;
dep_id =scan(compress(info,' ','kd'),1,' ');
dept_name=compress(info,' ','ka');
dep_qty=scan(compress(info,' ','kd'),-1,' ');
run;

```

Xia Keshan

Message was edited by: xia keshan

Posts: 1,270

## Re: seperate a single column values to each varibles

Posted in reply to KrishnaChandra

data a;

input prd_id name & \$20. prod_qty;

cards;

101 pencil  57

102 parker pen  24

103 hp studion shuffle n  10

104 samsung galexy ace  29

;

run;

Frequent Contributor
Posts: 89

## Re: seperate a single column values to each varibles

Posted in reply to KrishnaChandra

Thanks Xia Keshan. I got the op

🔒 This topic is solved and locked.

Need further help from the community? Please ask a new question.

Discussion stats
• 4 replies
• 263 views
• 0 likes
• 4 in conversation