turn on suggestions

Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

Find a Community

- Home
- /
- SAS Programming
- /
- SAS Procedures
- /
- how to get sampled output data without sorting

Topic Options

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

10-26-2015 05:09 PM

Hi, every one.

Recently, I am trying to select some sample using PROC SURVEYSELECT procedure.

I want to give the sequence the obeservtion, for example, the I have 5 observation, 1 to 5.

the sequecne for sampling without replacement may be is 3 5 4 1 2.

but, everytime the sas only give me the output data which has been sorted.

so, i only can have a data set is 1 to 5.

I check the statement, the sort statement also does not provide the function I asked.

if there is a easy way to get the results I want?

Accepted Solutions

Solution

10-26-2015
10:30 PM

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

10-26-2015 06:32 PM

if you want your sample to appear in random order, you must generate the permutation yourself. For example:

```
data test;
call streaminit(76575);
do x = 10 to 1 by -1;
order = rand("UNIFORM");
output;
end;
run;
proc surveyselect data=test out=sample5 sampsize=5 seed=866787;
run;
proc sort data=sample5 out=sample5(drop=order); by order; run;
```

PG

All Replies

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

10-26-2015 05:31 PM

You should post some code and what your input data looks like and what you expect.

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

10-26-2015 06:06 PM

I would expect Proc Surveyselect to use an algorithm where it choses each record with a certain probability. If so then the sort order of the target data set should be the same like the one of the source data set (like: obs3, obs7, obs9,...).

Solution

10-26-2015
10:30 PM

- Mark as New
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Highlight
- Email to a Friend
- Report Inappropriate Content

10-26-2015 06:32 PM

if you want your sample to appear in random order, you must generate the permutation yourself. For example:

```
data test;
call streaminit(76575);
do x = 10 to 1 by -1;
order = rand("UNIFORM");
output;
end;
run;
proc surveyselect data=test out=sample5 sampsize=5 seed=866787;
run;
proc sort data=sample5 out=sample5(drop=order); by order; run;
```

PG