0

Rバージョン:2.12.2 / OS:Windows XP

クエリと操作が必要なデータは、SPSS .savファイル(サイズ〜112MB)に保存されており、SPSS構文に関する非常に基本的な知識があります。私はRに非常に慣れているので(そして一般的にデータの操作と分析にそれを好む)、SPSSファイルをタブ区切りファイル(サイズ〜85MB)として保存し、RODBCパッケージの機能を使用してクエリを実行しようとしました。

Windowsのコントロールパネルの[管理ツール]グループ内の[データソース(ODBC)]アプリケーションを使用して、Microsoftテキストドライバーでテーブル(タブ区切りファイル)を持つデータベース(Windowsフォルダー)をセットアップします。

現在対象のテーブルには、日付が「%Y /%m /%d」でフォーマットされている「Date」フィールド(「DateTime」と呼ばれる)があります。このフィールドの条件を使用してデータベースに最初にクエリを実行しようとしたときに、観測値がゼロの結果セットが返されました。そこで、「DateTime」をデータ型「Character」に変更し、クエリを再試行しました(役に立たなかった)。

データベースを正常にクエリできます。

sqlQuery(channel = cn, query = "SELECT * FROM large_table.txt", as.is = TRUE, stringsAsFactors = FALSE, max = 20)

結果を返します。次のクエリは、観測値がゼロの結果セットを返します(「DateTime」フィールドに値「2011/04/01」を持つレコードが少なくとも1つあることを確認しました)。

sqlQuery(channel = cn, query = "SELECT DateTime FROM large_table.txt WHERE DateTime = {d '2011-04-01'}", as.is = TRUE, stringsAsFactors = FALSE)

sqlQuery(channel = cn, query = "SELECT DateTime FROM large_table.txt WHERE DateTime = '2011/04/01'", as.is = TRUE, stringsAsFactors = FALSE)

結果セットに観測値がない理由を誰かに教えてもらえますか?

データベース接続またはクエリを改善するための提案は大歓迎です。別のデータベースクエリパッケージの代わりにRODBCパッケージを使用することを好みますが、必要に応じて新しいことを試してみます。

4

2 に答える 2

3

これには「memisc」パッケージを使用します。3 つの SPSS ファイルの spss.system.file() インポーターをセットアップし、memisc バージョンを使用してサブセット化し、必要な変数だけを R にロードします (ユーザー欠損レベルの処理を含む)。

SPSS ファイルの設定方法にはいくつかの奇妙な点があります。数値変数を含む SPSS ファイルにユーザー欠損値が設定されることはかなり頻繁にあり、R 側で適切な NA でスケーリングする間隔に並べ替える必要がある場合があります。

于 2011-10-20T19:08:22.620 に答える
2

SPSS ファイルを R に直接読み込むことで、多くの手間を省くことができます。

library(foreign)
dat <- read.spss("filename.sav", to.data.frame=TRUE)

これにより、通常の R ツールをすべて使用して分析できる data.frame が返されます。

副次的な利点として、data.frame の属性にアンケート テキストも含まれます。

詳細については、を参照?read.spssしてください。

于 2011-10-20T10:21:39.887 に答える