分析では、分析を行う前に、csv(xls)から生データを読み取り、SASデータセットに変換する必要があります。
現在、問題は、この生データには一般に2つの問題があることです。1。列の順序が時々変更されます。したがって、以前の期間に変数A、B、Cの順に列がある場合、B、C、Aの順に変更される可能性があります。2。「#」や「」などの外部要素があります。 「」、「いくつかの文字」など。ここで、SASに読み込む前に、まず生データをクリーンアップする必要があります。これにはかなりの時間がかかります。データを読み取る前に、SASシステム自体のデータをクリーンアップする方法はありますか?SASコードを使用してデータを修正できれば、かなりの時間を節約できます。
次に例を示します。
期間1:この形式でData1.csvのデータを取得しました。数値の列Bには、「#」と「。」があります。そして、同じく数値である列C、私は「g」を持っています。PROC IMPORTまたはInfileステートメントのいずれかを使用してData1.csvをインポートすると、列BおよびCのこれらの外部要素は残ります。ここでの問題は、それをどのように行うかです。IfSTATEMENTを使用できます。しかし、問題は、外部要素が多すぎることです(たとえば、「#」、「。」、「g」の代わりに、「$」、「h」などの他の外部要素を取得する可能性があります)。 SASに生データをインポートするたびにIFSTATEMENTを使用して指定しなくても、外部要素を検出して削除するコード。
A B C
Name1 1 5
Name2 2 6
Name3 3 4
Name4 # g
Name5 5 3
Name6 . 6
期間2:この期間に、以下に示すDATA2.csvを取得しました。INFILEステートメントを使用するときは、最初にAを特定の名前で読み取り、次にBを特定の名前で読み取り、次にCを読み取る必要があることを指定します。データを取得する2番目の期間では、Bに1番目が与えられます。したがって、SASがAではなくBのデータを読み取る場合、前のフェーズデータとの変数の順序を毎回確認し、infileステートメントを使用してデータを読み取る前に修正する必要があります。変数の数が多すぎるため、この方法で列の順序を確認するのは非常に時間がかかります(そして時にはイライラします)。SASがA、B、Cの順に自動的に読み取るSASコードはありますか?
B A C
1 Name1 5
2 Name2 6
3 Name3 4
# Name4 g
5 Name5 3
. Name6 6
私は主に分析目的でSASを使用していますが。ただし、Rを使用してデータをクリーンアップし、SASでデータを読み取ってさらに分析することはできます。したがって、Rコードも役立ちます。
ありがとう。