18

ファイルを data.tables オブジェクトに読み取るために、R でfread関数を使用しています。

ただし、ファイルを読み取るときに#で始まる行をスキップしたいのですが、それは可能ですか?

ドキュメントでそれについての言及を見つけることができませんでした。

4

2 に答える 2

17

fread は、次のように、そのような行を除外するパイプ コマンドから読み取ることができます。

fread("grep -v '^#' filename")
于 2016-02-20T00:46:15.123 に答える
13

現在はありませんが、やることリストにあります。

先頭の # 行が 30 行を超えるヘッダーを形成していませんか?

もしそうなら、それは前に出てきて、解決策は次のとおりです。

fread("filename", autostart=60)

ここで、読み取られるデータのブロック内にあるように 60 が選択されます。

から?fread:

行の自動開始でセパレーターが検出されると、列数が決定されます。次に、その列数を持たない行が見つかるまで、自動開始から逆方向にファイルが検索されます。したがって、最初のデータ行が検出され、人間が判読できるバナーはすべて自動的にスキップされます。この機能は、すべてのバナーのサイズが一貫しているとは限らない一連のファイルをロードする場合に特に便利です。skip>0 を設定すると、autostart=skip+1 を設定して上方への検索をオフにすることで、この機能を無効にします。

あなたのケースでは、デフォルトautostart=30を少し上げる必要があるかもしれません。

または多分skip=nまたはskip="string"役立ちます:

-1 (デフォルト) の場合、最初のデータ行を見つけるために、行の自動開始から開始して以下に説明する手順を使用します。skip>=0 は、autostart を無視し、skip+1 行を最初のデータ行 (または、通常どおり header="auto"|TRUE|FALSE に従った列名) とすることを意味します。skip="string" は、ファイル内の "string" (たとえば、列名行の部分文字列) を検索し、その行から開始します (パッケージ gdata の read.xls に触発されています)。

于 2013-09-20T17:11:47.173 に答える