web-dev-qa-db-ja.com

Read.csv()がエラーをスローする

Excelファイルを読み込もうとしましたが、何か問題があるようです。ファイルはExcel形式でドキュメントフォルダーに保存されます。

これらは私が得るエラーメッセージです:

table <- read.csv(file.choose(),header=T,sep='\t')

Warning messages:
1: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  line 1 appears to contain embedded nulls
2: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  incomplete final line found by readTableHeader on 

また、これらは警告でしたので、たまたま無視しました。しかし、「テーブル」には何も読み込まれていません。

table
# [1] PK...
# <0 rows> (or 0-length row.names)
7
Minal Murkhande

read.csvは、XLS(X)ファイルを読み取らず、CSVファイルのみを読み取ります。 ExcelでExcelファイルを開いてCSVにエクスポートし、read.csvコマンドを再発行してみてください(システム言語によっては、代わりにread.csv2を使用することもできます)。

9
Waldir Leoncio

私は同様のエラーがありました、例えば:

A <- read.csv("tel.csv", sep = ",")
Error in read.table(file = file, header = header, sep = sep, quote = quote,  : 
  empty beginning of file
In addition: Warning messages:
1: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  invalid input found on input connection 'tel.csv'
2: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  line 1 appears to contain embedded nulls
3: In read.table(file = file, header = header, sep = sep, quote = quote,  :
  incomplete final line found by readTableHeader on 'tel.csv'

私が試した解決策:

A <- read.csv("tel.csv", sep = ",",
              fileEncoding="utf-16")

出来た。

7
Rafa

Xlsxファイルを読み込もうとしている場合は、xlsxライブラリを使用するか、それらをcsvファイルとしてエクスポートします。 read.tableまたはread.csvは、Excelファイルでは機能しません。

install.packages("xlsx")
library(xlsx)
table <- read.xlsx("file.xlsx", 1)
3
blakeoft

定義上、.csvファイルにはカンマ区切りの値があります。 Rコードでは、区切り文字としてタブ( "\ t")を使用します。実際のcsvファイルがある場合は、次のように入力できます。

csvfile<-read.csv("csvfilename.csv")

または代わりに

csvfile<-read.table("csvfilename.csv",sep=",")

ただし、最初のコマンドで十分です。 Excelがデータテーブルに対して不安定な処理を行わない限り、csvファイルの列を区切るためにタブを指定する必要があるのは奇妙です。

常にRでxlsxパッケージを使用して、ファイルを必要な形式に書き込むこともできます。

1
user3482899

まず、CSVが実際にExcelファイルではなくCSVであることを確認します(質問のケースである可能性があることを示唆しています)。 _read.csv_は区切りテキストファイルを読み取り、Excelファイル(.xlsまたは.xlsx)を処理できません。

区切り文字で区切られたテキストファイルの場合、エラーメッセージを見ると、CSV(タブ区切り値ファイル)にread.csv()が処理できない空の列名がある可能性があります。

次に、2番目の警告は、ファイルの最後の行が不完全であると見なします。これは、一部のフィールドが空のときにファイルを出力してセパレーターを組み合わせることが原因である可能性があります。

彼らはプログラムを停止したり終了したりしないので警告ですが、それは物事が期待どおりではないかもしれないと言っています。

1
ydaetskcoR

読み取ろうとしているファイルは、エンコードされていないかのように、UTF-16エンコードされたファイルである可能性があります。 fileEncoding = "UTF-16"引数で試してください

0
Alex Joseph

考えられる原因の1つは、ファイル自体ではなく、誤ってエイリアスをファイルにロードしようとしていることです。 R for Macでは、read.csvエイリアスであなたが得たエラーを与えます。

0
Sandeep