5

私のデータは中規模から大規模になる傾向がありますが、「BIG」データとは言えません。ほとんどの場合、データは複雑なリレーショナルです。ここでは、合計サイズが 1 ~ 10 GB の 10 ~ 50 個のテーブルについて説明します。これ以上何もない。これよりも大きなデータを扱うときは、Postgres または SQL Server に貼り付けます。

全体として、私は SQLite が好きですが、扱うデータには非常に多くの日付/日時フィールドが含まれており、SQLite で日付フィールドを扱うと頭が痛くなり、R と SQLite の間でデータをやり取りすると、日付が壊れることがよくあります。 .

Rから簡単に操作できる、SQLiteに代わるファイルベースの代替手段を探しています。

また

日付を変更せずに SQLite および R との間でデータを移動するためのより優れた手法/パッケージ。私の目標は、日付を台無しにするのをやめることです。たとえば、RSQLite パッケージの dbWriteTable を使用すると、通常、日付が乱れて作業できなくなります。

私の主なワークステーションは Ubuntu を実行していますが、Windows が主流のオフィスで働いています。SQLite の代替案を提案する場合、+++ は両方のプラットフォーム (またはそれ以上) で機能する代替案です。

4

2 に答える 2

2

エポック時間と日付(起点からの日数、起点からの秒数)を使用します。エポックを使用したRPOSIXctまたはDateへの変換は高速です(文字列は非常に低速です)。

編集:データを読み直してサイズを検討した後の別の方法:

テーブルをR形式で直接保存するだけで、テーブル間の主要な関係を説明する小さな追加のメタデータを使用できます。独自の規則などを作成する必要がありますが、それは間違いなくスムーズです(インピーダンスの不一致はありません)。

また、私は個人的にパッケージに非常に部分的ですdata.table。これは高速で、純粋なRの構文を持っていますが、SQLの概念への優れたマッピングがあります。たとえば、dt[i, j, by=list(...)]iwhere」、j「select」、by「group by」に対応し、結合の機能もありますが、それらの周りに中置ラッパーを記述したので、覚えやすくなりました。

私は通常、データ処理作業をRでのみ実行し(SQLITEからの最初のプル後)、data.tableは大規模なSQLDFクエリよりも高速で実用的です。

http://datatable.r-forge.r-project.org/

于 2012-05-14T16:24:39.397 に答える
0

sqlite が標準形式の「YYYY-MM-DD HH:MM:SS」でデータを読み込みたい (必要なければ時刻の部分は省略できます) --- 読み込み方法がわかりません任意の日付文字列。これにより、正規化された日付が格納されます。

出力時に、sqlite 関数を使用して、他のソフトウェアが必要とするものに合わせて日付をフォーマットする必要があります。strftime() のオプションを確認してください。

たとえば、Octave は 0 年以降の日番号が好きなので、"date" 列を持つテーブル mydata がある場合、私はそうします。

mydata から julianday(mydate)-1721059.666667 を選択します

マジック ナンバーは julianday("0000-01-01T00:00:00-04:00") であり、julianday が紀元前 4017 年などに始まるという事実を補正しますが、Octave は 0 年から数えます。

于 2014-05-23T22:00:37.573 に答える