আর .cv ফাইলটি আর-তে পড়ার চেষ্টা করার সময় 'অসম্পূর্ণ চূড়ান্ত লাইন' সতর্কতা


114

এই সূত্রটি ব্যবহার করে আমি একটি .csv ফাইল পড়ার চেষ্টা করছি:

pheasant<-read.table(file.choose(),header=TRUE,sep=",")

আমি এই সতর্কতা বার্তাটি পেয়েছি:

"incomplete final line found by readTableHeader on 'C:\Documents and Settings..."

আমি ভেবেছিলাম বেশ কয়েকটি জিনিস এই সতর্কতাটির কারণ হতে পারে, তবে দুর্ভাগ্যক্রমে আমি আর নিজেই সমস্যাটি সনাক্ত করার জন্য যথেষ্ট পরিমাণে জানি না তাই আমি ভেবেছিলাম যে অন্য কেউ আমার জন্য এটি নির্ধারণ করতে পারে এমন আশায় আমি এখানে পোস্ট করব!

  • .csv ফাইলটি মূলত একটি এক্সেল ফাইল ছিল, যা আমি .csv ফর্ম্যাটে সংরক্ষণ করেছি
  • ফাইলটিতে তিনটি কলামের ডেটা রয়েছে
  • প্রতিটি ডেটা কলাম পৃথক দৈর্ঘ্যের হয়, অর্থাত প্রতিটি কলামে বিভিন্ন মানের মান রয়েছে
  • আমি একবারে দুটি কলামের দুটি (টি-টেস্ট বা সমান / সাধারণ বিতরণের উপর নির্ভর করে) এর সাথে তুলনা করতে চাই, উদাহরণস্বরূপ, কলাম 1 মান এবং কলাম 2 মানগুলির মধ্যে টি-পরীক্ষা, তারপরে একটি টি- কলাম 1 এবং কলাম 3 মান ইত্যাদির পরীক্ষা

কোন সহায়তা বা পরামর্শ গুরুতরভাবে প্রশংসা করা হবে!


1
@ কেট: আপনি কি আমাদের ফাইলটিতে লিঙ্ক করতে পারেন? আমার কিছু ধারণা আছে তবে ফাইলটি না থাকলে কোন সমস্যা এটি বলা মুশকিল।
জোরিস মেয়েস

হাই জরিস - আমি কীভাবে এটি করব তা নিশ্চিত নই, দুঃখিত ...
কেট

প্রথম কলামে 1045 মান আছে, দ্বিতীয়টিতে 623 টি মান রয়েছে এবং তৃতীয়টিতে 871 রয়েছে যদি সহায়তা করে ...? এগুলি পুরো এবং অর্ধ সংখ্যাতে সমস্ত সংখ্যাসূচক মান, যেমন 23, 24.5 ইত্যাদি ...
কেট

1
আমি মনে করি এটিই সমস্যা, কারণ পঠনযোগ্য টেবিলটি আপনার ডেটা একটি ডেটা ফ্রেমে রাখে, যার সমান কলামেন্থ দৈর্ঘ্য থাকা দরকার।
স্যার কিসিলিম

1
@ জেমস: না, না। readTableHead (অন্তর্নিহিত সি ফাংশন) প্রথম 5 লাইন পড়ে reads ত্রুটি সেখানে উত্পন্ন।
জোরিস

উত্তর:


134

বার্তাটি ইঙ্গিত দেয় যে ফাইলের শেষ লাইনটি শেষের লাইনের (EOL) অক্ষর (লাইনফিড ( \n) বা ক্যারেজ রিটার্ন + লাইনফিড ( \r\n)) দিয়ে শেষ হয় না। এই বার্তার মূল উদ্দেশ্যটি আপনাকে সতর্ক করে দেওয়া ছিল যে ফাইলটি অসম্পূর্ণ হতে পারে; বেশিরভাগ ডেটাফাইলে ফাইলটির খুব শেষ চরিত্র হিসাবে একটি EOL অক্ষর থাকে।

প্রতিকারটি সহজ:

  1. ফাইলটি খুলুন
  2. ফাইলের একেবারে শেষ লাইনে নেভিগেট করুন
  3. কার্সারটি সেই লাইনের শেষে রাখুন
  4. প্রেস return
  5. ফাইলটি সংরক্ষণ করুন

2
এটি ফাইলের শেষ লাইন নয়। তিনি শিরোনামটি পড়ছেন, এটি আপনার প্রথম পাঁচটি লাইন।
জোরিস মেয়েস

@ জোরিসমিজ ত্রুটি বার্তাটি তবে ফাইলের শেষ লাইনটিকে বোঝায়। উপরের পদক্ষেপগুলি গ্রহণ করা সত্যই সতর্কবার্তাটি সরিয়ে দেয়।
ওয়ার্ল্ডগোভ

@ ওয়ার্ল্ডগোভ "অসম্পূর্ণ চূড়ান্ত লাইন" হ'ল একটি সতর্কতা (ত্রুটি নয়) যা বিভিন্ন কারণে পপ আপ করতে পারে। আপনার ক্ষেত্রে এটি একটি চূড়ান্ত EOL এর অভাব। আপনার ক্ষেত্রে সতর্কতাটি ফিড টেবিলহাইডার ফাংশন দ্বারা ছুঁড়ে ফেলার কোনও উপায় নেই কারণ এটি চূড়ান্ত লাইনটি পড়ে না। সুতরাং আপনার সমস্যাটি ওপি-র মতো নয়।
জরিস মেজ 11

20

সমস্যা সমাধান করা সহজ; এটি কারণ শেষ লাইনটি খালি থাকতে হবে।

বলুন, যদি আপনার বিষয়বস্তু হয়

line 1,
line2

এটি পরিবর্তন করুন

line 1,
line2
(empty line here)

আজ আমি এই ধরণের সমস্যার মুখোমুখি হয়েছি, যখন আমি নীচের কমান্ডটি ব্যবহার করে একটি জেএসএন ফাইল পড়ার জন্য আর ব্যবহার করার চেষ্টা করছিলাম:

json_data<-fromJSON(paste(readLines("json01.json"), collapse=""))

; এবং আমি আমার উপরের পদ্ধতি দ্বারা এটি সমাধান।


1
একটি আরপিআই হোস্টিংয়ের জন্য প্লাম্বার ব্যবহার করা আমার একই সমস্যা ছিল। Warning message: In readLines(file) : incomplete final line found on 'apiAnaheim.R'শেষের দিকে একটি ফাঁকা লাইন যুক্ত করে সতর্কতা সমাধান করা হয়েছিল। এই ঘটছে কেন নিশ্চিত না।
HoofarLotusX

একই অবস্থা. ধন্যবাদ।
মেগাথেথ

14

আপনি কি নিশ্চিত যে আপনি .csv ফাইলটি নির্বাচন করেছেন এবং .xls ফাইলটি নয়? আমি যদি একটি .xls ফাইলে পড়ার চেষ্টা করি তবে আমি কেবল ত্রুটিটি পুনরুত্পাদন করতে পারি। আমি যদি একটি .csv ফাইল বা অন্য কোনও পাঠ্য ফাইলে পড়ার চেষ্টা করি তবে আপনার ত্রুটিটি পুনরায় তৈরি করা অসম্ভব।

> Data <- read.table("test.csv",header=T,sep=",")
> Data <- read.table("test.xlsx",header=T,sep=",")
Warning message:
In read.table("test.xlsx", header = T, sep = ",") :
  incomplete final line found by readTableHeader on 'test.xlsx'

readTableHeadসি-ফাংশন যা ত্রুটি দেয়। এটি ডেটার ধরণ নির্ধারণ করতে প্রথম এন লাইনে (প্রথম 5 টি স্ট্যান্ডার্ড) পড়ার চেষ্টা করে। বাকী ডেটা ব্যবহার করে পড়া হয় scan()। সুতরাং সমস্যাটি ফাইলের ফর্ম্যাট।

এটির সন্ধানের একটি উপায় হ'ল ফাইলটি যে ডিরেক্টরিতে রয়েছে সেই ডিরেক্টরিটিতে ওয়ার্কিং ডিরেক্টরিটি সেট করা। আপনি যে ফাইলটি পড়েছেন তার প্রসারণটি আপনি দেখতে পান Windows আমি উইন্ডোজটিতে জানি এটি মানক হিসাবে দেখানো হয়নি, তাই আপনি বিশ্বাস করতে পারেন যে এটি সিএসভি নয় while

আপনার পরবর্তী কাজটি করা উচিত, নোটপ্যাড বা ওয়ার্ডপ্যাডে (বা অন্য সম্পাদক) ফাইলটি খুলুন এবং ফর্ম্যাটটি আমার ফাইলের সমান কিনা তা পরীক্ষা করুন test.csv:

Test1,Test2,Test3
1,1,1
2,2,2
3,3,3
4,4,
5,5,
,6,

এই ফাইলটি আপনাকে নিম্নলিখিত ডেটাফ্রেম দেবে:

> read.table(testfile,header=T,sep=",")
  Test1 Test2 Test3
1     1     1     1
2     2     2     2
3     3     3     3
4     4     4    NA
5     5     5    NA
6    NA     6    NA

এক্সেল দ্বারা সংরক্ষিত সিএসভি ফর্ম্যাটটি কমা দিয়ে সমস্ত কক্ষকে পৃথক করে। খালি কক্ষগুলির কোনও মূল্য নেই। read.table()সহজেই এটি মোকাবেলা করতে পারে, এবং খালি ঘরগুলি ঠিকঠাক স্বীকৃতি দেয়।


এটি একটি উইন্ডোজ 7 পরিবেশ হিসাবে ধরে নেওয়া, কেট যদি ডেস্কটপে বা ফোল্ডারের ভিতরে অনুলিপি করা ফাইলটি দেখেন তবে .csv ফাইলের আইকনটিতে "a" থাকে, অন্যদিকে .xlsx ফাইলে একটি আইকন থাকে যা দেখতে আরও বেশি দেখায় একটি কার্যপত্রক মত। এটি ফাইলের ধরণ নির্ধারণের জন্য একটি চাক্ষুষ দৃশ্য way আইকনগুলি বড় হওয়ায় ডেস্কটপে সংরক্ষণ করার সময় অনেক সহজ। :)
মিশেল

7

প্রথমে একটি অক্ষর ভেক্টরে ফাইল পড়তে readLines()(সহ warn = FALSE) ব্যবহার করুন ।

এর পরে text =একটি ডেটা ফ্রেমে ভেক্টরটি পড়তে বিকল্পটি ব্যবহার করুনread.table()

    pheasant <- read.table( 
        text = readLines(file.choose(), warn = FALSE), 
        header = TRUE,  
        sep = "," 
    )

3

আমি বুঝতে পেরেছিলাম যে বেশ কয়েকটি উত্তর সরবরাহ করা হয়েছে তবে এখনও কোনও সত্যিকারের ঠিক করা হয়নি।

উপরে উল্লিখিত হিসাবে কারণটি সিএসভি ফাইলের শেষে একটি "লাইনের শেষ" অনুপস্থিত।

আসল ফিক্সটি মাইক্রোসফ্ট থেকে আসা উচিত, হাঁটাচলাটি হ'ল টেক্সট-এডিটর সহ সিএসভি ফাইলটি খুলতে হবে এবং ফাইলটির শেষে একটি লাইন যুক্ত করা উচিত (ওরফে প্রেস রিটার্ন কী)। আমি এটিএম সফটওয়্যারটি একটি পাঠ্য / কোড সম্পাদক হিসাবে ব্যবহার করি তবে কার্যত সমস্ত বুনিয়াদি পাঠ্য সম্পাদক এটিই করেন।

ইতিমধ্যে, দয়া করে মাইক্রোসফ্টকে বাগটি রিপোর্ট করুন।

প্রশ্ন: আমার কাছে মনে হচ্ছে এটি একটি অফিস 2016 এর সমস্যা। কারও পিসিতে সমস্যা আছে?


2

আমি একই বার্তা পেয়েছি। আমার ফিক্সটি অন্তর্ভুক্ত রয়েছে: আমি .csv ফাইলের সমস্ত অতিরিক্ত শিট (ট্যাবগুলি) মুছে ফেলেছি, অ-সংখ্যাসূচক অক্ষরগুলি মুছে ফেলেছি, প্রমিত ভাষা ব্যবহার করে আর ভি 2.15.0 এ লোড করা কমা হিসাবে ফাইলটিকে পুনরায় সঞ্চিত করেছি:

ফাইলের নাম <-read.csv ( "ফাইলের নাম", হেডার = true)

অতিরিক্ত সুরক্ষা হিসাবে, আমি সিএসভি লোড করার আগে সফ্টওয়্যারটি বন্ধ করে দিয়ে আবার খুললাম op


2

বিভিন্ন ইউরোপীয় লোকেলগুলিতে, কমা অক্ষর দশমিক পয়েন্ট হিসাবে কাজ করে, পরিবর্তে read.csv2 ফাংশনটি ব্যবহার করা উচিত।


2

আমি এই সমস্যাটি সমাধানের জন্য পঠনটিতে এনকোডিং পরিবর্তন করে ফাইলইনকোডিং = "ইউটিএফ -16" থেকে ফাইলের এনকোডিং = "ইউটিএফ -8" এ আটক করতে সক্ষম করব।


1

সমস্যা হল আপনি কি আমার জন্য ঘটেছে বর্ণনা করছি যখন আমি একটি নতুন নামকরণ .xlsxযেমন .csv

আমার জন্য এটি কী স্থির করেছিল তা "সেভ হিসাবে" যাচ্ছিল এবং তারপরে এটি .csvআবার সংরক্ষণ করা হয়েছিল ।


1

শিরোনামের অংশ হিসাবে আমার যখন একক উদ্ধৃতি ছিল তখন আমি এই সমস্যাটি পেয়েছিলাম। যখন আমি এটিকে সরিয়ে দিয়েছি (যেমন থেকে সম্পর্কিত কলামের শিরোনামটির নামকরণ Jimmy's dataহয়েছে Jimmys data), ফাংশনটি কোনও সতর্কবার্তা দেয়নি।


1

এই সমস্যাটি আর এর মাধ্যমে সমাধান করার জন্য, আমি কেবল read.xlsx(..)একটি এর পরিবর্তে ব্যবহার করেছি read.csv()। একটি যাদুমন্ত্র মত কাজ করে!! এমনকি আপনার নতুন নামকরণও করতে হবে না। একটি এক্সএলএসএক্সকে সিএসভিতে নামকরণ কোনও কার্যকর সমাধান নয়।


# দিগ্বিজয়_সওয়ান্ট, আপনার শেষ মন্তব্যে আপনি কী বোঝাতে চেয়েছেন তা নিশ্চিত নন, তবে এখানে অন্য সমস্ত সমাধানের বিপরীতে (আমি প্রায় তাদের সকলেরই চেষ্টা করেছি: উন্মাদ!), আপনার কাজটিই কেবল একমাত্র কাজ করেছিল।
ডব্লু বার্কার

1
@ ডাব্লু বার্কার মূল প্রশ্নে লেখক এক্সেলকে সিএসভিতে সংরক্ষণ করেছিলেন এবং তারপরে এটি পড়ার চেষ্টা করেছিলেন। ভালভাবে একটি এক্সেলকে সিএসভিতে রূপান্তরিত করা হতে পারে ডেটা ফর্ম্যাট, ডেটা ক্ষতি হতে পারে ইত্যাদির মতো জিনিসগুলি পরিবর্তন করতে পারে Excel আচ্ছা আমি কোনও বিশেষজ্ঞ নই, কেবল একটি চিন্তা :-)
দিগ্বিজয় সাওয়ান্ত

0

পাঠ্য র‌্যাংলার বা নোটপ্যাডে ফাইলটি খুলুন ++ এবং বিন্যাসটি যেমন টেক্সট র‌্যাঞ্জেলারের মধ্যে আপনি অদৃশ্য দেখান তা দেখান। এইভাবে আপনি নতুন লাইন বা ট্যাব অক্ষর দেখতে পাচ্ছেন প্রায়শই এক্সেল ভুল জায়গায় সমস্ত প্রকারের ট্যাব যুক্ত করবে এবং শেষের নতুন লাইন অক্ষর নয়, এটি দেখতে আপনাকে চিহ্নগুলি দেখাতে হবে।


0

আমার চারপাশের কাজটি হ'ল আমি csvএকটি টেক্সট সম্পাদকে ফাইলটি খুললাম , শেষ মানটির উপর অতিরিক্ত কমাগুলি মুছে ফেলেছি , তারপরে ফাইলটি সংরক্ষণ করেছি। উদাহরণস্বরূপ নিম্নলিখিত ফাইলের জন্য

Test1,Test2,Test3
1,1,1
2,2,2
3,3,3
4,4,
5,5,
,6,,

6 এর পরে কমাগুলি সরান, তারপরে ফাইলটি সংরক্ষণ করুন।


0

আমি একটি অনুরূপ সমস্যা পেয়েছি, তবে এটি সাধারণ জবাবদিহি হিসাবে উপস্থিত হয় এবং বাস্তবে এটি লাইন-এন্ড চরিত্রের সাথে সম্পর্কিত নাও হতে পারে। আমার ক্ষেত্রে এটি এই ত্রুটিটি দিচ্ছিল কারণ আমি যে ফাইলটি ব্যবহার করছিলাম সেটিতে সিরিলিক অক্ষর রয়েছে, আমি একবার তাদের ল্যাটিন অক্ষরগুলির সাথে প্রতিস্থাপন করে ত্রুটিটি অদৃশ্য হয়ে গেল।


0

আমি বিভিন্ন সমাধানের চেষ্টা করেছি, যেমন একটি নতুন লাইন সন্নিবেশ করানোর জন্য একটি পাঠ্য সম্পাদক ব্যবহার করে এবং উপরের উপরের উত্তরে প্রস্তাবিত অনুসারে লাইন অক্ষরটি পান। দুর্ভাগ্যক্রমে এগুলির কোনওটিই কাজ করেনি।

সমাধান পরিশেষে কাজ করেছেন আমার জন্য খুব সহজ ছিল: আমি একটি নতুন খালি CSV ফাইল মধ্যে একটি CSV ফাইল বিষয়বস্তু কপি-আটকানো, এটি সংরক্ষিত এবং সমস্যা সর্বস্বান্ত হয়েছিল।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.