Saya mencoba membaca file .csv menjadi R dan setelah menggunakan rumus ini:
pheasant<-read.table(file.choose(),header=TRUE,sep=",")
Saya mendapatkan pesan peringatan ini:
"incomplete final line found by readTableHeader on 'C:\Documents and Settings..."
Ada beberapa hal yang menurut saya mungkin menyebabkan peringatan ini, tetapi sayangnya saya tidak cukup tahu tentang R untuk mendiagnosis masalahnya sendiri, jadi saya pikir saya akan memposting di sini dengan harapan orang lain dapat mendiagnosisnya untuk saya!
- file .csv aslinya adalah file Excel, yang saya simpan ke dalam format .csv
- file tersebut terdiri dari tiga kolom data
- setiap kolom data memiliki panjang yang berbeda, yaitu terdapat jumlah nilai yang berbeda di setiap kolom
- Saya ingin membandingkan rata-rata (menggunakan uji-t atau ekuivalen tergantung pada distribusi normal / tidak normal) dari dua kolom sekaligus, jadi misalnya, uji-t antara nilai kolom 1 dan nilai kolom 2, lalu t- uji nilai kolom 1 dan kolom 3, dll.
Bantuan atau saran apa pun akan sangat dihargai!
r
line-endings
read.csv
Kate
sumber
sumber
Jawaban:
Pesan tersebut menunjukkan bahwa baris terakhir file tidak diakhiri dengan karakter End Of Line (EOL) (linefeed (
\n
) atau carriage return + linefeed (\r\n
)). Maksud asli dari pesan ini adalah untuk memperingatkan Anda bahwa file tersebut mungkin tidak lengkap; kebanyakan file data memiliki karakter EOL sebagai karakter terakhir dalam file.Obatnya sederhana:
sumber
Masalahnya mudah dipecahkan; itu karena baris terakhir HARUS kosong.
Katakanlah, jika konten Anda
ubah menjadi
Hari ini saya menemui masalah seperti ini, ketika saya mencoba menggunakan R untuk membaca file JSON, dengan menggunakan perintah di bawah ini:
json_data<-fromJSON(paste(readLines("json01.json"), collapse=""))
; dan saya menyelesaikannya dengan metode saya di atas.
sumber
Warning message: In readLines(file) : incomplete final line found on 'apiAnaheim.R'
peringatan diselesaikan dengan menambahkan satu baris kosong pada akhirnya. Tidak yakin mengapa ini terjadi.Apakah Anda yakin telah memilih file .csv dan bukan file .xls? Saya hanya dapat mereproduksi kesalahan jika saya mencoba membaca dalam file .xls. Jika saya mencoba membaca dalam file .csv atau file teks lainnya, tidak mungkin membuat ulang kesalahan yang Anda dapatkan.
readTableHead
adalah fungsi-c yang memberikan kesalahan. Ia mencoba membaca di n baris pertama (standar 5 yang pertama) untuk menentukan jenis data. Sisa data dibaca dengan menggunakanscan()
. Jadi masalahnya adalah format file tersebut.Salah satu cara untuk mengetahuinya, adalah mengatur direktori kerja ke direktori tempat file tersebut berada. Dengan cara itu Anda melihat ekstensi dari file yang Anda baca. Saya tahu di Windows itu tidak ditampilkan standar, jadi Anda mungkin percaya itu csv padahal tidak.
Hal berikutnya yang harus Anda lakukan, buka file di Notepad atau Wordpad (atau editor lain) dan periksa apakah formatnya setara dengan file saya
test.csv
:File ini akan memberi Anda dataframe berikut:
Format csv yang disimpan oleh excel memisahkan semua sel dengan koma. Sel kosong tidak memiliki nilai.
read.table()
dapat dengan mudah menangani ini, dan mengenali sel kosong dengan baik.sumber
Gunakan
readLines()
(denganwarn = FALSE
) untuk membaca file menjadi vektor karakter terlebih dahulu.Setelah itu gunakan
text =
opsi untuk membaca vektor menjadi bingkai data denganread.table()
sumber
Saya menyadari bahwa beberapa jawaban telah diberikan tetapi belum ada perbaikan yang nyata.
Alasannya, seperti yang disebutkan di atas, adalah "Akhir baris" yang hilang di akhir file CSV.
Sementara Fix yang sebenarnya harus datang dari Microsoft, cara berjalannya adalah membuka file CSV dengan Text-editor dan menambahkan baris di akhir file (alias tekan tombol kembali). Saya menggunakan perangkat lunak ATOM sebagai editor teks / kode tetapi hampir semua editor teks dasar akan melakukannya.
Sementara itu, laporkan bug tersebut ke Microsoft.
Pertanyaan: Menurut saya ini adalah masalah kantor 2016. Apakah ada yang punya masalah di PC?
sumber
Saya menerima pesan yang sama. Perbaikan saya termasuk: Saya menghapus semua lembar tambahan (tab) di file .csv, menghilangkan karakter non-numerik, menyimpan ulang file sebagai dipisahkan koma dan dimuat di R v 2.15.0 menggunakan bahasa standar:
Sebagai pengaman tambahan, saya menutup perangkat lunak dan membuka kembali sebelum saya memuat csv.
sumber
Di berbagai lokal Eropa, karena karakter koma berfungsi sebagai titik desimal, fungsi read.csv2 harus digunakan sebagai gantinya.
sumber
Saya telah memecahkan masalah ini dengan mengubah pengkodean dalam argumen read.table dari fileEncoding = "UTF-16" menjadi fileEncoding = "UTF-8".
sumber
Masalah yang Anda menggambarkan terjadi bagi saya ketika saya berganti nama sebuah
.xlsx
sebagai.csv
.Apa yang memperbaikinya untuk saya adalah "Simpan Sebagai" dan kemudian menyimpannya sebagai
.csv
lagi.sumber
Saya mendapat masalah ini sekali ketika saya memiliki satu kutipan sebagai bagian dari tajuk. Ketika saya menghapusnya (yaitu mengganti nama tajuk kolom masing-masing dari
Jimmy's data
menjadiJimmys data
), fungsi tersebut tidak mengembalikan peringatan.sumber
Untuk memperbaiki masalah ini melalui R itu sendiri, saya hanya menggunakan
read.xlsx(..)
sebagai pengganti fileread.csv()
. Bekerja seperti pesona !! Anda bahkan tidak perlu mengganti nama. Mengganti nama xlsx menjadi csv bukanlah solusi yang layak.sumber
Buka file di pengatur teks atau notepad ++ dan tunjukkan pemformatannya, misalnya di pengatur teks yang Anda tampilkan tidak terlihat. Dengan begitu Anda dapat melihat karakter baris atau tab baru. Seringkali excel akan menambahkan semua jenis tab di tempat yang salah dan bukan karakter baris baru terakhir, tetapi Anda perlu menunjukkan simbol untuk melihatnya.
sumber
Pekerjaan saya adalah membuka
csv
file di editor teks, menghapus koma yang berlebihan pada nilai terakhir, lalu menyimpan file tersebut. Misalnya untuk file berikutHapus koma setelah 6, lalu simpan file.
sumber
Saya pernah mengalami masalah yang serupa, namun ini tampaknya peringatan umum, dan mungkin sebenarnya tidak terkait dengan karakter akhir baris. Dalam kasus saya itu memberikan kesalahan ini karena file yang saya gunakan berisi karakter Cyrillic, setelah saya menggantinya dengan karakter latin kesalahan tersebut menghilang.
sumber
Saya mencoba solusi yang berbeda, seperti menggunakan editor teks untuk menyisipkan baris baru dan mendapatkan karakter End Of Line seperti yang direkomendasikan dalam jawaban atas di atas. Sayangnya, tidak ada yang berhasil.
The solusi yang tidak akhirnya bekerja bagi saya adalah sangat sederhana: Saya menyalin-disisipkan isi dari file CSV ke file kosong CSV baru, disimpan, dan masalah itu pergi.
sumber