2016-10-05 19 views
-2

Stataに列の番号を入れましたが、数値の文字列値 "nan"が含まれていたため、文字列として読み込まれました。私はそれ以来、欠損値に置き換えています。そのため、列にはすべて文字列形式の数字が含まれています。列のタイプを再決定するコマンドは何ですか?Stataの列の型を再決定する方法

+0

良い質問のオリジナルの作者は、(クエリのこの種のための)コードとのいくつかの試みを示したデータ例を示しています。 http://www.statalist.org/forums/helpの助言の多くは関連しており、特にデータの例として 'dataex'(SSC)を使用しています。 –

答えて

2

用語:Stataの "columns"は常にという変数と呼ばれます。

数値または文字列の変数は、最初に変数タイプまたは保存タイプの問題です。表示形式が割り当てられます。 Stataの "Format"は変数型を意味するものではありません。この

clear 
input str5 stryit 
"1" 
"2" 
"42" 
"666" 
"NAN" 
end 

のようなデータを持つ

いくつかの慎重な規則があります。強要された場合の数値を生成しない観測の種類を参照するには

チェック:

tab stryit if missing(real(stryit)) 

このような多くの種類がある場合は、あなたがアプローチを再考する必要がある場合があります。

元の変数は、必要がなくなったことがない限り、元のままにしておいてください。あなたが好きな場合はforcedestringを使ってください。新しい変数はgenerateです。あなたの場合、それはうまくいくでしょう。 forceを使用してより良い

destring stryit, force gen(ntryit1) 

は、あなたの変換ルールを明示することです。

destring stryit, ignore("NA") gen(ntryit2) 

はあなたが明示的にdestring前に問題のある値を変更することができます:それは(あなたが任意の深刻な分析に使用されるすべてのコマンドを記録しておくことを当然と仮定)あなたが何をしたかの記録を残します。以前のルールと同様に、そのことの利点は、あなたがしたことの記録を持っていることです。

list 


    +------------------------------------------------+ 
    | stryit ntryit2 ntryit1 stryit2 ntryit3 | 
    |------------------------------------------------| 
    1. |  1   1   1   1   1 | 
    2. |  2   2   2   2   2 | 
    3. |  42  42  42  42  42 | 
    4. | 666  666  666  666  666 | 
    5. | NAN   .   .   .   . | 
    +------------------------------------------------+ 

免責事項:結果は意味が作ることを確認するには

clonevar stryit2 = stryit 
replace stryit2 = "." if stryit2 == "NAN"` 
destring stryit2, gen(ntryit3) 

チェックここdestring

関連する問題