2011-07-06 7 views
13

私は列方向のCSVファイルをデータフレームとしてRに読み込もうとしています。read.csv row.names

ファイルの最初の行はとても似ている:

sDATE, sTIME,iGPS_ALT, ...

し、各追加のラインは測定値である。

4/10/2011,2:15,78, ...

IがRにこれを読み取るしようとすると、 via

d = read.csv('filename')

Rはデータの最初の列が行の名前だと思うので、重複するrow.namesエラーが発生します。すべての測定が同じ日に行われたため、最初の列の値は変更されません。

私はread.csv呼び出しにrow.names = NULLに入れた場合は、私がSDATE列に対応関係のない列d$row.namesを取得し、すべてが1列下に、そうd$sDATEはそれで2:15、必要に応じていない4/10/2011を持っているでしょう「シフト」されます。

私のCSVをExcelで開いても何もしないで保存してください。すべてがクールです。私はこれらを何百も処理しなければならないので、手動でExcelを保存することは私が望むものではありません。プログラムで何かがある場合は、これらのCSVをPythonやその他の方法で前処理することができます。それは素晴らしいことです。

+0

'row.names = 1:n'の設定についてはどうでしょうか。ここで' n'はファイルの行数です。 – nullglob

+0

結果が 'read.tableのエラー(ファイル=ファイル、ヘッダー=ヘッダー、sep = sep、見積り=見積もり、: 'row.names'指定が無効です。 – nimish

+2

csvの最初の数行と列を貼り付けます –

答えて

29

read.csvヘッダーの値が他の行よりも少ない場合、行名があると仮定します。ですから、どういうわけか、列名が見つからないか、不要な余分な列があります。

4

おそらく余分な列があります。
しかし、おそらく、元のスプレッドシート内のデータの右側に実際に空の迷った書式設定されたセル(またはセルの列)から発生します。
ここにキーがあります:Excelはシートにフォーマットされている空のセルの空のフィールドをCSVファイルに保存します。 これはおそらくあなたがこの問題を抱えている理由です.ExcelでCSVファイルを開いて再保存すると、Rの問題が解消するためです。
何が起こっているのですか?CSVファイルをExcelに戻すと、CSVファイルのフォーマットがないため、データの右または下の空のセルは無視されます。

結論:フォーマットされたスプレッドシートを統計パッケージで使用するためのCSVファイルとして保存するように注意してください。ストレイフォーマットとは、CSV内の漂遊フィールドを意味します。

0

考えられる理由の1つは、ヘッダー行の後の行の末尾に余分なカンマを付けることができます。 Excelは自動的に無視し、保存中に削除します。

少なくとも私の場合でした

0

私は同じ問題に直面しました。これは、日付列が適切に整列しまった

tempdata <- read.csv("C:\\File.csv",header=TRUE) 

以下の最初の列のようにheader=TRUEを追加することで解決しまいました。