2016-05-07 5 views
0

codebookはStataの素晴らしいコマンドです。これは、データの内容を説明したが、単にコマンドのヘルプを見ると、ユニークな値Stataの固有の値を数えてください

sysuse auto, clear 
codebook mpg, compact 

のmpgのユニークな値の数である21を特定し、この値を格納することはできないようです。私が間違っている?

私はStataのnumber of unique valuesを計算する他の方法を知っていますが、この機能をcodebookコマンドに追加すると便利です。

+0

'codebook'は、報告するものの番号を一意の値として保存しません。この領域のレビューについては、http://www.stata-journal.com/sjpdf.html?articlenum=dm0042 –

+0

を参照してください。 – emeryville

答えて

2

間違っています。私の経験で

、このラッパーのアプローチは、はるかに効果的な彼らが参加していないインターネットコミュニティ上でのコマンドを変更するStataCorpで素敵な人々を尋ねるよりもあることが証明されている

をここに例を示します。

/* (1) You can stick this into a file called mycodebook.ado in /ado/personal (use adopath to see exact location) */ 
capture program drop mycodebook 
program mycodebook, rclass 
syntax [varlist] [if] [in][, *] 
codebook `varlist' `if' `in', `options' 
capture ssc install distinct 
foreach var of varlist `varlist' { 
    qui distinct `var' `if' `in' 
    return scalar nv_`var' = r(ndistinct) 
} 
end 

/* (2) example with mycodebook */ 
sysuse auto, clear 
mycodebook price mpg rep78 if foreign==0, compact 
return list 

この最後の部分はあなたを与える:あなたは、その後のような(または何でもあなたがこれらをどうしたいれる)ことを行うことができます

. mycodebook price mpg rep78 if foreign==0, compact 

Variable Obs Unique  Mean Min Max Label 
------------------------------------------------------------------------------------------------- 
price  52  52 6072.423 3291 15906 Price 
mpg   52  17 19.82692 12  34 Mileage (mpg) 
rep78  48  5 3.020833  1  5 Repair Record 1978 
------------------------------------------------------------------------------------------------- 

. return list 

scalars: 
      r(nv_rep78) = 5 
      r(nv_mpg) = 17 
      r(nv_price) = 52 

を:

gen x=r(nv_rep78) 
+0

これは素晴らしいソリューションです。ありがとうございます。 – emeryville

+1

最新バージョンの 'distinct'(作者Gary Longtonと私)は、_Stata Journal_ウェブサイトからダウンロードされます。 stataの 'search distinct、sj'を使ってインストール用のリンクを取得します。 –

1

はい、あなたは、あなたが簡単にあなたがスカラー(S)としたい情報を保存するためにSSCからニックのdistinctコマンドを使用していますcodebookのラッパーを書くことができ

ssc install egenmore 
egen unique_values=nvals(mpg) 
+0

私は間違っているのではないかと恐れています!ありがとうございますが、私は 'codebook'の後にこの値を保存することに興味があり、それは不可能と思われます。ニックの答えを見てください。 – emeryville

+0

あなたは基本的にそれぞれのコードブックを手動で出力することができます。あなたは一意の値を与えます。 –

+0

これは質問に対する答えを提供しません。批評をしたり、著者の説明を求めるには、投稿の下にコメントを残してください。 - [レビューから](レビュー/低品質の投稿/ 12412472) –

関連する問題