- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Hello, below is the dataset and I want to display only those obs. where last 3 digits in the amount ends with 999.
thanks.
id amount
1 678
2 73999
3 6574
4 7699
5 672908
6 69999
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
The MOD function is your friend:
data have ;
input id amount ;
cards ;
1 678
2 73999
3 6574
4 7699
5 672908
6 69999
;
run ;
data want ;
set have ;
last_digit = mod (amount, 10) ;
run ;
Kind regards
Paul D.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Is account a number (and if so why?) or a character string? The subject line says number and the example data appears left justified like a character string. Depending on which you have use one of these methods.
where mod(account,1000) = 999 ;
where substrn(account,length(account)-2)='999';
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
@Tom:
It seems it says "amount" rather than "account". And it's my understanding that by "last digit", the OP means the least significant, i.e. rightmost digit.
If the variable in question a digit string, methinks the simplest is:
last_digit = char (amountC, length (amountC)) ;
Plus, it's convenient that CHAR returns $1 suitable for a single digit character.
Kind regards
Paul D.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Not sure how the last digit can ever equal 999.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
@Tom: Me neither. A case where the title mismatches the content.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Not the first subject content disagreement, even today:
I would go with the
Hello, below is the dataset and I want to display only those obs. where last 3 digits in the amount ends with 999.
thanks.
But would also be concerned about potential decimal portion of the value.