DATA Step, Macro, Functions and more

Is there a way to have a row zero?

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 9
Accepted Solution

Is there a way to have a row zero?

Hi, 

 

I was wondering if it is possible to have a row zero, that will not be counted in an analyis, but would contain, important information. 

 

Best, 

 


Accepted Solutions
Solution
‎08-31-2016 10:27 AM
Super User
Posts: 10,521

Re: Is there a way to have a row zero?

I would ask what you are doing that this is causin issues but the OBS number is not in the data set. So add a variable with the value you want:

 

Data work.one4;

  set work.one3;

  Obs = _n_ -1;

run;

View solution in original post


All Replies
Super User
Posts: 6,962

Re: Is there a way to have a row zero?

To store important information about the table within the table itself, look at column and dataset labels.

 

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Occasional Contributor
Posts: 9

Re: Is there a way to have a row zero?

Well, the information I am storing tells the total amount of row entries divided by 3  for each row, in order to find a solution for the total amount of moves needed for a puzzel. In this case it will not be a label, however it will indicate how far you are from the solution. 

Super User
Posts: 6,962

Re: Is there a way to have a row zero?

The number of observations in a dataset can either be read from sashelp.vtable (dictionary.tables in PROC SQL), or you can use the nobs= option in the set statement to create a data step variable that holds that value.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Super User
Posts: 17,868

Re: Is there a way to have a row zero?

Wouldn't that be a column? Please post sample input and desire output. 

Occasional Contributor
Posts: 9

Re: Is there a way to have a row zero?

Here is my output. To rephrase my question: Is there a way to make an observation 0. I want obersevation 1 to be 0. 


Screen Shot 2016-08-26 at 10.23.05 PM.png
Solution
‎08-31-2016 10:27 AM
Super User
Posts: 10,521

Re: Is there a way to have a row zero?

I would ask what you are doing that this is causin issues but the OBS number is not in the data set. So add a variable with the value you want:

 

Data work.one4;

  set work.one3;

  Obs = _n_ -1;

run;

Super User
Posts: 6,962

Re: Is there a way to have a row zero?

There.is.no.observation.zero.in.a.SAS.dataset. Never.

You only can do that:

data want;
set have;
retain counter;
if _n_ = 1
then do;
  counter = 1;
  output;
  counter = 0;
  * set values for your "0" observation;
  output;
  counter = 1;
end;
else do;
  counter + 1;
  output;
end;
run;

proc sort data=want;
by counter;
run;

This creates a virtual obs 0, but be aware that any sort other than by counter will move that "zero obs" to another place.

---------------------------------------------------------------------------------------------
Maxims of Maximally Efficient SAS Programmers
Super User
Posts: 9,687

Re: Is there a way to have a row zero?

Check WEIGHT statement.


if you are using proc freq , check ZEROS option of WEIGHT.


☑ This topic is SOLVED.

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

Discussion stats
  • 8 replies
  • 328 views
  • 0 likes
  • 5 in conversation