What is the purpose of the trailing and How would you use them?
Answers were Sorted based on User's Feedback
Answer / sandhya
The trailing @ or more technically, line hold specifiers
are used to hold the pointer in the same record for
multiple iterations. The two tyoes of line hold specifiers
are single trailing(@) and double trailing(@@).
The single trailing hold the record until it encounters
either another input statement or end of the datastep.
They are used for the records such as
001F38 H
002 F 40 G
To read these values to the datastep
Data example;
input @10 type $ @;
if type='H' then
input @1 id 3. @4 gender $1. @5 age2.;
else if type='G' then
input @1 id3. @5 gender $1. @7 age 2.;
end;
cards;
001F38 H
002 F 40 G
;
run;
The double trailing holds the until the end of the record.
Data example2;
input id age @@;
cards;
001 23 002 43 003 65 004 32 005 54
;
run;
Is This Answer Correct ? | 19 Yes | 0 No |
Answer / kishore kumar
Trailing @ is used to hold the record in input buffer to
execute another input statement on the same datalines.
Trailing @@ is used to hold the record in input buffer to
execute same input statement on same datalines intil eof
record
Is This Answer Correct ? | 10 Yes | 0 No |
Answer / dupe bassey
If a variable doesnt have a single trailing @ with an input
statement, when sas encounters another input statement
after the first one,it would load a new record, this action
will result in some obeservations not been outputed and
missing data. To avoid this, a single trailing @ is used to
hold the record , so that when it encounters another input
statements within the datastep a new record is not loaded,
It bassically tells sas to use the data just placed in the
input buffer for the next input statement .
the single trailing @ is release when an input statement
without a trailing @ is encountered.
`input zz$ status @@' tells SAS to read two words at a
time from the input buffer to the pdv without discarding
the rest of the line.Without the trailing @@, SAS would
read the first two words from input buffer and ignore the
rest of the line. This would result in reading less records
Is This Answer Correct ? | 4 Yes | 0 No |
Answer / guest
to reand next input statements at which same iteratioins of
a data step.
@n is column pointer control.
Is This Answer Correct ? | 4 Yes | 1 No |
Answer / amarender
If the data is continuosly in data set SAS would read the
first words only from each line in the `datalines' block and
it will ignore the rest of the line. if we use Trailing
@@'it will read completly.and another type of trailing is
using single @ this is a line hold specifier.
Is This Answer Correct ? | 3 Yes | 0 No |
Answer / ganesh naidu
@ is the column pointer, to instruct sas to go particular
line of raw data and it hold the line of raw data
When we have mulitiple lines of raw data per observation to
read , then use '@@' it hold line of raw data more
strongly.
Is This Answer Correct ? | 1 Yes | 0 No |
Answer / radhiv kumar sure
WE CAN USE @ IN TWO CASES
1.HOLDING THE RECORD. FOR EXAMPLE IF THE DATA IS
HIERARCHIAL FILE.
2.FOR POINTER CONTROLLING. FROM WHICH POSITION VARIABLE AS
TO READ
@N LINE HOLD SPECIFIER
Is This Answer Correct ? | 1 Yes | 0 No |
Answer / chiranjeevi.p
Trailing is a column pointer.These are those which works on
the variable level by default.it should appear with in
datastep and besides the variables in sas.these are two
types.there are
1)@
2)@@
@:It reads only the first line across the avaliable
variables data.
@@:The '@@' get the data entire data from the external
source by reading in to a single variable.
Is This Answer Correct ? | 1 Yes | 5 No |
What is the difference between %local and %global? : sas-macro
i want for interview question & answer plz it need immediate send t my mail raviprakashmot@gmal.cm
What are types of transport files?
2 Answers PRA Health Sciences, Quintiles,
/* This is example of age caluculate wihtout to display perfect days and years in output window */ data age; retain dob "12jun2003"d now "24may2011"d; age1=now-dob; age=(now-dob)/365.25; years=int(age); days1=round((age-years)*365.25); months=month(now)-1; if days1 gt 30 and months in(12,10,8,6,4,2)then do; month1=days1/30.4375; month=int(days1/30.4375); if day(now)=1 then days=1; else days=round((month1-month)*30.4375)+1; drop days1 month1 month; end; else if days1 gt 30 and months in (1,3,5,7,9,11)then do; month1=days1/30.4375; month=int(days1/30.4375); if day(now)=1 then days=1; else days=round((month1-month) *30.4375); drop days1 month1 month; end; drop age age1; proc print data=age; format dob now date.; run;
What would you change about your job?
what is the difference between unique key and primary key? : Sas-di
How could i automate the code in the scenario:Every month one new data set will be created for that perticular month transaction list.Now i would like to update the data in the source table by appending every month data automatically. jan---set jan; feb---set jan feb; mar---set jan mar;
Which statement does not perform automatic conversions in comparisons?
I have a dataset concat having variable a b & c. How to rename a b to e & f?
Could you please answers for this. 1.Code the tables statement for a single-level (most common) frequency. 2.Code the tables statement to produce a multi-level frequency.
What is the difference between reading data from an external file and reading data from an existing data set?
how does sas handle missing values in formats? : Sas programming