<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
私は20年間の日々の積雪深データを含むデータセットを持っています。 最大または最大の積雪深の値が発生した年月日を特定する必要があります。 これを達成する方法について何か提案はありますか?ありがとう。
最大の深さを共有する多くの日付を取得する可能性があります...これはそれらを取得する方法です:
プロシージャSQL;
テーブルピークを作成します
年(日付)を年、日付、深さとして選択
私のデータから
計算された年でグループ化
深さ = max(depth) である;
ピークから * を選択します。
やめる;
PG
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />問題に取り組むには多くの方法があります。まず、「sasshelp.classを例に取り、「sex」を「year」に、「height」を「snow depth」に、それぞれ使用します。
1。SQLソリューション:
proc sql;
テーブルを作成する
sashelp.class aからa。*を選択し、
(性別、sasshelp.classグループから性別の最大値としてmax(height)を選択)b
ここで、a.sex = b.sexおよびa.height = b.max
;
終了する;
2。データステップ;
proc sort data = sashelp.class out = tem;
性別;
走る;
データが必要(drop = _h);
(last.sex)まで行う。
セットtem;
性別;
_h = max(_h、height);
終わり;
(last.sex)まで行う。
セットtem;
性別;
height = _hの場合、出力。
終わり;
走る;
そしてもちろん、他の多くの方法があります。たとえば、proc summaryなど、検討する価値があります。
proc summary data = sashelp.class nway;
クラスセックス;
var height;
出力out = want(drop = _
maxid(height(name)height(age)height(weight))= name age weight max =;
走る;
よろしく、
俳句
mpb が概説した方法は、元のテーブルに最大深度を追加するのに最適です。元の例を変更して、テーブルから最大深度と日付を出力しました。Snow Date (日付タイプ) と Snow Depth (数値) のフィールドがあると想定しています。年列に列式を追加しました。
dt= 新しいテーブル( "降雪",
行を追加(20 ),
新しいコラム( 「積雪深」,数値,連続, 形式( "最高", 12 ),
値の設定(
[34, 45, 53, 56, 99, 67, 12, 78, 53, 89, 77, 90, 48, 12, 73, 23, 12, 34,
6, 45] ) ),
新しいコラム( 「スノーデート」,数値,連続, 形式( 「ddMonyyy」, 10 ),
入力フォーマット(「ddMonyyy」 ),
値の設定(
[1767225600, 1771113600, 1805155200, 1809129600, 1843084800, 1838160000,
1889049600, 1893283200, 1896220800, 1900281600, 1950566400, 1955491200,
1957651200, 1964217600, 1990396800, 1995926400, 2023488000, 2029449600,
2051481600, 2056752000] ) ),
新しいコラム( 「雪の年」,数値,連続, 形式( "最高", 12 ),
式(年( :雪の日) ),
ロック(1 )
)
);
// 各年の最高降雪量を取得します
要約する(年リスト=による(:雪年,最大深度リスト=最大(:積雪深));
// 降雪量が最も多かった日付を取得します
のために (i = 1, i <= 行(最大深度リスト), i++、
1年=年リスト[ i ];
1 深さ=最大深度リスト[ i ];
// 異なる日でも最大積雪深は同じになる可能性がある
1年間の最大行数=dt<<(の行を取得します:雪の年== で(1年)&
:積雪深==1 深さ);
のために (k = 1, k <= 行(1年間の最大行数), k++、
m =1年間の最大行数[ k ];
雪の日付= :降雪日[ m ];
print ( "最大降雪量" || char ( one_depth ) || " on " ||
形式(雪の日付, 「ddMonyyy」));
);
);