2016-06-22 7 views
1

(PowerBI)からデータをエクスポートするプログラムは、データを.csvファイルとして保存しますが、ファイルの最初の行はsep=,で、ファイルの行にはヘッダー(列名)があります。最初の行に `sep =、`を付けてcsvをRにロード

サンプル偽の.csvファイル:

sep=, 
Initiative,Actual to Estimate (revised),Hours Logged,Revised Estimate,InitiativeType,Client 
FakeInitiative1 ,35 %,320.08,911,Platform,FakeClient1 
FakeInitiative2,40 %,161.50,400,Platform,FakeClient2 

私は、ファイルの読み取りには、このコマンドを使用しています:

initData <- read.csv("initData.csv", 
        row.names=NULL, 
        header=T, 
        stringsAsFactors = F) 

を、私は、列の間違った数は(があることエラーを取得しておきますなぜなら、最初の行では列の数がわかると思うからです)。

代わりにheader=Fを実行するとロードされますが、実行するとnames(initData) <- initData[2,]に名前にスペースと不正な文字が含まれ、残りのプログラムが壊れます。無害。

Rに最初の行を無視する方法を知っている人はいますか?私はテキストエディタで.csvファイルに入り、毎回読み込む前に最初の行を手動で削除することができます(私がそれを行うと、すべて正常に動作します)が、たくさんのファイルをエクスポートする必要があり、これはちょっとばかげています面倒で退屈です。

ご協力いただければ幸いです。

+3

= 1(read.csvために余分な引数)をスキップしてみてください - それだけですべての行を期待する - それは「最初の行はそれを列の数を告げると思わない」 – lebatsnok

+0

これは最初の行をスキップします同じ数の列を持つこと。 – lebatsnok

+0

'data.table :: fread'を参照して、デフォルトで意図されたとおりにデータを読み込もうとします。 – zx8754

答えて

1

これを行う方法はたくさんあります。ここでは一つだ:

all_content = readLines("initData.csv") 
skip_first_line = all_content[-1] 
initData <- read.csv(textConnection(skip_first_line), 
        row.names=NULL, 
        header=T, 
        stringsAsFactors = F) 
+0

優れています。私はそれをスキップする前に、 'if'コマンドで最初の行が確かに' sep =、 'であることを確認することもできます。ありがとうございました。 – seth127

関連する問題