初めてのポスターですので、必要なヘルプをできるだけ明確にしようと思います。私はRにかなり新しいです、そして、これは私の最初の本当の独立したプログラミング経験です。大きな異例のファイルをRにインポート
在庫データは約2.5年あり、毎日独自のファイルがあります。ファイルは.txtで、およそ2千万〜3千万の行から構成されており、平均して360mbと推測されます。私は今のところ一度に一つのファイルを扱っています。これらのファイルに含まれるすべてのデータが必要なわけではありません。ファイルを最小限に抑えるためにプログラミングを使用できることを期待していました。
私の問題は、適切なコードを書くことにいくつかの困難を抱えているため、Rは必要なことを理解するためです。
最初にいくつかのデータを表示して、フォーマットのアイデアを得ることができます。
M977
R 64266NRE1VEW107 FI0009653869 2EURXHEL 630 1
R 64516SSA0B 80SHB SE0002798108 8SEKXSTO 40 1
R 645730BBREEW750 FR0010734145 8EURXHEL 640 1
R 64655OXS1C 900SWE SE0002800136 8SEKXSTO 40 1
R 64663OXS1P 450SWE SE0002800219 8SEKXSTO 40 1
R 64801SSIEGV LU0362355355 11EURXCSE 160 1
M978
データの別のスニップは:
M732
D 3547742
A 3551497B 200000 67110 02800
D 3550806
D 3547743
A 3551498S 250000 69228 09900
だから、あなたが見ることができるように、それぞれの行は文字で始まります。それぞれの文字は、行の意味を示します。たとえばR
は注文書ディレクトリメッセージを意味し、M
は最後の1秒後のミリ秒を意味し、H
は株式取引アクションメッセージを意味します。合計14種類の文字が使われています。
私はreadLines
関数を使ってデータをRにインポートしましたが、これはデータを扱うときにRが処理するのに非常に時間がかかるようです。
ここで最初の文字がR
で、オフセット1から4までのコードはマーケットセグメント識別子などを意味するIf関数を記述したいと思います。より構造化された方法でデータを送信する。
このようなデータをインポートし、何らかの形式の構造を作成する、つまり一度に1つの在庫を一度に分析するためにデータ行に一意のID情報を使用するなどの方法があります。
ご返信ありがとうございます。私は行全体を分割することができましたが、データ全体についてのみ行うことができました。私は次のコードを使用しました 'コード 開始= c(1,16,30,38,46,50,54) 終了= c(14,28,35,43,47,50,55) ldata = x =部分文字列(データ、rep(開始、rep(ldata、 lstarts) ' このコードを各初期値に割り当てることはできますか?私は各手紙の後にそれを書き出そうとしましたが、それはうまくいかないようです。フィードバックをお寄せいただきありがとうございます – Morten