4

多くの列とデータのセクションを含む csv ファイルをインポートしました。

v <- read.csv2("200109.csv", header=TRUE, sep=",", skip="6", na.strings=c(""))

ファイルのレイアウトは次のようなものです。

Dataset1
time, data, .....
0       0
0       <NA>
0       0

Dataset2
time, data, .....
00:00   0
0       <NA>
0       0

(異なるデータセットのヘッダーはまったく同じです。

これで、最初のデータセットを次のようにプロットできます。

plot(as.numeric(as.character(v$Calls.served.by.agent[1:30])), type="l")

次のより良い方法があるかどうか興味があります。

  1. 変換せずに、数値として読み取られたすべての数値を取得します。

  2. 意味のある方法で、ファイル内のさまざまなデータセットに対処します。

ヒントをいただければ幸いです。ありがとうございました。


ステータスアップデート:

私はまだRで良い解決策を見つけていませんが、Luaでスクリプトを書き始めて、個々の時系列を個別のファイルに分けました。Rがこれらすべてのファイルをどれだけうまく処理できるか知りたいので、今のところこれを開いたままにします。1日あたり8ファイルを取得します。

4

1 に答える 1

3

私が個人的に行うことは、ファイルがRに読み込まれる前に、いくつかのスクリプト言語でスクリプトを作成して、さまざまなデータセットを分離し、場合によっては必要なデータ変換も行うことです。

Rで分割を実行する場合は、ルックアップreadLinesしてscanread.csv2は高レベルであり、単一のデータフレームを読み取るためのものです。さまざまなデータセットをさまざまなファイルに書き込むことができます。または、野心的な場合read.csv2は、基になる大きなファイルの正しい部分で使用でき、そこから読み取るファイルのようなRオブジェクトを作成できます。

データセットを異なるファイルに分割することに取り掛かったら、それらを使用します(または、これらがタブではなく固定幅のフィールドである場合はread.csv2、どちらか最適なバリアントを参照してください)。ファイルで「使用不可」を示している場合は、必ずの一部として指定してください。そうしないと、Rはそのフィールドに数値以外のデータがあると見なしますが、右の場合、フィールドは自動的に数値に変換されます。フィールドの1つに、のようなタイムスタンプを含めることができるようです。そのため、タイムスタンプ形式を変換できるクラスを使用して指定する必要があります。組み込みクラスが機能しない場合は、独自のクラスと変換を行う関数を定義するだけです。read.tableread.fwf<NA>na.stringsna.strings00:00colClassesDatetimestampas.timestamp

于 2009-03-27T06:57:58.293 に答える