- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Apologies if I've put this in the wrong place, I'm completely new here but this seemed like the best forum based on the introductory channels' description.
Basically I am working on a class assignment and trying to create two different subsets of my data: one with only renters included and one with only homeowner's included. My code that's not functioning is below, and I can supply more if needed:
data RentersData; set FullData2; delete if RENTGRS=0; run;
Basically I am trying to drop all observations from my data where gross rent payments (RENTGRS) are equal to 0 so that only renters are included. However, I keep getting an error message that says ERROR 79-322: Expecting a ;.
Adding a screenshot below of the error message just in case there's any important detail I may have ignored
I hope this is descriptive enough, I can provide additional info if necessary. Thank you
Accepted Solutions
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I believe you need to switch your "delete" & "if" statements around. See solution 1 below.
I have included solutions 2 &3 that achieve the same result using different methods as well.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I believe you need to switch your "delete" & "if" statements around. See solution 1 below.
I have included solutions 2 &3 that achieve the same result using different methods as well.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Thank you so much, Solution 1 worked perfectly. I appreciate the additional solution approaches as well because they look like a cleaner solution than what I was opting for, I think they will help me a lot in the future
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
The DELETE statement does not allow any other text. That is why SAS says you are missing a semicolon. Your text looks like it was meant to be two statements. A DELETE statement and subsetting IF statement.
delete;
if RENTGRS=0;
But that would delete every observation.
If you want to conditionally execute the DELETE statement then you can use an IF/THEN statement and code the DELETE statement as the statement to execute when the condition is true.
if RENTGRS=0 then delete;
If instead you want to use a subsetting IF statement you will need to reverse the logic of condition since now you want to specify the condition for when to NOT delete the observation.
if RENTGRS ne 0;