12

SAS データセットからデータをダンプする必要があります。SAS .sas7bdat データセットを読み取ることができるという sas7bdat.py という Python モジュールを見つけました。他の機能が必要なため、SAS ではなく Python でプロジェクトを実行する方が簡単で簡単だと思います。ただし、インタラクティブな Python のヘルプ (sas7bdat) はあまり役に立ちません。データセットをダンプするために見つけた唯一の例は次のとおりです。

import sas7bdat
from sas7bdat import *
# following line is sas dataset to convert
foo = SAS7BDAT('/support/sas/locked_data.sas7bdat')
#following line is txt file to create
foo.convertFile('/support/textfiles/locked_data.txt','\t')

これは、a) SAS 変数名を列ヘッダーとして使用し、変数ラベルを使用する必要があり、b) "nan" を使用して欠落している数値を示しているため、私が望むことはできません。値を空白にします。

sas7bdat.py に含まれるメソッドに関する有用なドキュメントを誰か教えてもらえますか? 考えつく限りのキーワードの順列をすべて Google で検索しましたが、うまくいきませんでした。そうでない場合は、readColumnAttributes()、readColumnLabels()、および/または readColumnNames() の使用例を 1 つまたは 2 つ教えてもらえますか?

皆さんありがとう。

4

4 に答える 4

4

[読みやすい]具体的なドキュメントが見つからないため、これは部分的な回答にすぎません。

ここでソースコードを表示できます

これは、次のような、メソッドが必要とする引数に関するいくつかの基本的な情報を示しています。

  • readColumnAttributes(self, colattr)
  • readColumnLabels(self, collabs, coltext, colcount)
  • readColumnNames(self, colname, coltext)

あなたが求めているもののほとんどは、SAS7BDAT でオブジェクトを作成するときに返される「ヘッダー」クラスに格納されていると思います。そのクラスを印刷するだけで多くの情報が得られますが、クラス属性にもアクセスできます。あなたが探しているもののほとんどは foo.header.cols の下にあると思います。あなたが言及したメソッドのパラメーターとして、さまざまなヘッダー属性を使用していると思われます。

たぶん、このようなものはあなたに近づきますか?

from sas7bdat import SAS7BDAT
foo = SAS7BDAT(inFile) #your file here...

for i in foo.header.cols:
    print '"Atrributes"', i.attr
    print '"Labels"', i.label
    print '"Name"', i.name

編集:この特定の質問とは関係ありませんが、なじみのないクラス/ライブラリで何が起こっているのかを理解しようとするときに、 type()およびdir()コマンドが役立ちます

于 2014-07-16T16:25:13.050 に答える