<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、
データセットから部分文字列を抽出するためにSAS PRX関数を使用しようとしています。しかし、それは完全に一致するものだけを返しますが、私はより柔軟で、さまざまな条件に一致するものを抽出する必要があります。
自分のデータを以下にコピーしました。お分かりのように、私のデータの中の変数の1つは、特定のカメラのブランド名とモデル番号の両方を含む "brandmodel"です。モデル専用に別の列を用意する必要があります。そのため、PRX関数を使用してそれらを抽出します。これらは通常、次のいずれかのパターンに従っています。
たとえば、JX100、JX10、またはJX1(1〜2文字のアルファベットの直後に1〜3桁の数字)。この私のプログラム(データの下にコピーされた)は処理することができます。しかし、私が問題に遭遇するのは、アルファベットがスペースまたはハイフンで数字から分離されているモデル#をどのように抽出するか、そしてそれらを完全に同じものとして同じ「モデル」列に抽出するかです。また、観測値の中にはモデル番号が付いていないものがありますが、それらを完全に削除するのではなく、どのようにしてmissingに設定することができますか。
あなたがこのジレンマを提供することができるどんな援助でも大いに感謝されるでしょう。あなたからの連絡をお待ちしています。
ありがとうございました!
ケリー
ブランドモデル|価格
| iTwist F124デジタルカメラ-red | 49.00 | |
| Vivitar IF045デジタルカメラ - ブルー| 72.83 | |
| 液体画像水中カメラマスク| 128.00 |
| インパクトシリーズビデオカメラMXゴーグル•| 188.00 |
| オリンパスVR 340 | シルバー| 148.00 | | |
| Olympus TG820デジタルカメラブラック| 278.00 |
| オリンパスVR 340 16MP 10x 3.0 LCDレッド| 148.00 |
| Vivitar VX137-Purデジタルカメラ| 39.00 | |
| |
| Olympus SZ-12デジタルカメラ - ブラック| 198.00 |
| Olympus VG160デジタルカメラレッド| 98.00 | |
| オリンパスVR340 | パープル| 148.00 | | |
| Olympus TG820デジタルカメラシルバー| 298.00 |
| Olympus TG820デジタルカメラブルー| 278.00 |
| Olympus VG160デジタルカメラ | オレンジ| 98.00 | | |
| Olympus TG820デジタルカメラレッド| 298.00 |
| 富士フイルムFinePix AX500レッド| 78.63 | |
| キヤノンA2300シルバー| 98.63 | | |
| キヤノンA810レッド| 75.00 | | |
| Nikon Coolpix S2600デジタルカメラ - レッド| 88.00 |
| Nikon Coolpix L25デジタルカメラ - シルバー| 82.00 |
| カシオエクシリムZS10BK | 128.00 | | |
| | |
| Olympus TG-310 14 MPブルーデジタルカメラ| 148.00 |
| Hipstreet Kidzデジタルカメラ - ブルー| 14.93 | |
| カシオエクシリムZS10PK | 128.00 | | |
| Olympus TG-310 14 MPデジタルカメラ | オレンジ| 148.00 |
SASプログラム
データ walnov21p2;
長さ brandmodel $ 80 ;
卑劣な "G:\ File2 \ data \ store_nov21 \ storenv21p2.csv" firstob = 2 dlm = 「|」 DSD ;
入力ブランドモデルの価格
re = prxparse( '/ [[:alpha:]] {1,3} \ d {1,4} /' ;
もし prxmatch(再、ブランドモデル) それから
行う ;
model = prxposn(re、 0 、brandmodel);
出力 ;
終わり ;
走る ;