2016-06-16 3 views
0

私はsasデータセットのdiferentsサイズの変数でサンプルを取る必要があります。このSASデータセットを与え例えばSAS変数を使ってサンプルを取る機能はありますか?

V1 V2 V3 
0.9 3.3 32 
1.2 4.2 31 
0.4 1.8 45 
    7 6.3 67 
    .8 1.5 82 
5.9 4.3 62 

私は、変数によって、単純なランダムサンプルを取る持っている(V1 - V3)。 V1でサイズが2で、V2にサイズが4で、V3に

5.最後に、私はサンプルと3つのデータセットを持って欲しいです、それは次のようになります。何かアドバイスのため

V1_sample 
0.2 
0.4 

V2_sample 
3.3 
1.5 
4.2 
6.3 

V3_sample 
82 
62 
45 
31 
31 

感謝。

+0

私はあなたがしようとしていることを十分に説明していないと思います。あなたはアウトプットとして何を望んでいますか? – Joe

+0

私は、V1、V2、V3のサンプルを持つ3つのデータセットが必要です。 – andre

+0

質問にそれらを表示する - それらのデータセットの一例のセットはどのように見えるでしょうか?どのようにサンプリングしていますか? – Joe

答えて

0

それは、これを実行するために、別のデータセットを作るために、完全に不要です。

使用Brosephのデータ例:

data data; 
input v1 v2 v3; 
cards; 
0.9 3.3 32 
1.2 4.2 31 
0.4 1.8 45 
7 6.3 67 
.8 1.5 82 
5.9 4.3 62 
; 
run; 

proc surveyselect data=data method=urs n=2 out=v1_sample(keep=v1); 
run; 
proc surveyselect data=data method=urs n=3 out=v2_sample(keep=v2); 
run; 
proc surveyselect data=data method=urs n=5 out=v3_sample(keep=v3); 
run; 

しかし、単一のデータセット内のすべてのものを維持するだろうこれを行うための、おそらくより多くのSAS-SY方法。

data have; 
    set data; 
    array v[3]; 
    do _i = 1 to dim(v); 
    var = vname(v[_i]); 
    val = v[_i]; 
    output; 
    end; 
run; 

data sample_counts; 
    input var $ _NSIZE_; 
    datalines; 
v1 2 
v2 3 
v3 5 
;;;; 
run; 

proc sort data=have; 
    by var; 
run; 

proc surveyselect data=have out=want n=sample_counts method=urs outhits; 
strata var; 
run; 

これらの変数の分析はすべて行います。

0

データセットをサブセット化し、proc surveyselectを実行すると、一度に1つのデータセットを希望するサイズのSRSを取得できます。次のコードは、v1、v2、v3の各列のサイズnの単純なランダムサンプルである3つの別々のデータセットを出力します。私はあなたがこれを1つの手順ですべて行うことができるかどうかは分かりません。理論的には、それを行うプログラムを作成できるはずです。サンプルサイズが異なると、ちょっと乱雑になります。より自動化された方法でこれを行う関数を作成したい場合はRを使いますが、これらのタイプの問題はRで扱いやすくなりますが、それは私です。

data data; 
input v1 v2 v3; 
cards; 
0.9 3.3 32 
1.2 4.2 31 
0.4 1.8 45 
7 6.3 67 
.8 1.5 82 
5.9 4.3 62 
; 
run; 

data v1; 
set work.data; 
keep v1; 
run; 

data v2; 
set work.data; 
keep v2; 
run; 

data v3; 
set work.data; 
keep v3; 
run; 

proc surveyselect data=work.v1 method=srs n=2 out=v1sample; 
run; 
proc surveyselect data=work.v2 method=srs n=4 out=v2sample; 
run; 
proc surveyselect data=work.v3 method=srs n=5 out=v3sample; 
run; 
+0

v3_sample(31が2回現れる)の例に基づいて、srsの代わりにmethod = ursを使用すると思われます。 – superfluous

+0

変数に欠損値がある場合は、値がありませんか? – andre

+0

[こちらを参照](https://support.sas.com/documentation/cdl/en/statug/63347/HTML/default/viewer.htm#statug_surveyselect_sect014.htm)には、この手順を実行する方法がいくつかあるようですあなたの問題に最も適したデータに応じて欠落したデータを処理できます。 – Broseph

関連する問題