ডেটা সংরক্ষণের জন্য সহজ, নির্ভরযোগ্য, উন্মুক্ত এবং আন্তঃব্যক্তিকর সরল পাঠ্য বিন্যাস


17

আগের প্রশ্নে আমি সিএসভি ফাইল সম্পাদনা করার সরঞ্জামগুলির বিষয়ে জিজ্ঞাসা করেছি ।

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

কিছু অ্যাপ্লিকেশনগুলির জন্য একটি ডেডিকেটেড ডাটাবেস ম্যানেজমেন্ট সিস্টেমের প্রয়োজন হয়। তবে, ছোট স্কেল ডেটা বিশ্লেষণ প্রকল্পগুলির জন্য আরও কিছু হালকা ওজন বেশি উপযুক্ত বলে মনে হয়।

একটি ফাইল ফর্ম্যাট মূল্যায়নের জন্য নিম্নলিখিত মানদণ্ড বিবেচনা করুন:

  • নির্ভরযোগ্যতা : প্রবেশ করা তথ্য যা প্রবেশ করানো হয়েছে তার সাথে সত্য থাকতে হবে; তথ্য বিভিন্ন সফ্টওয়্যার মধ্যে নিয়মিত খোলার উচিত;
  • সরল : যদি ফাইল ফর্ম্যাটটি বোঝা সহজ হয় এবং একটি সাধারণ পাঠ্য সম্পাদক দ্বারা আদর্শভাবে পঠনযোগ্য হয় তবে এটি দুর্দান্ত হবে; ফর্ম্যাটটি পড়তে এবং লেখার জন্য একটি সহজ প্রোগ্রাম লেখা সহজ হওয়া উচিত।
  • ওপেন করুন : ফর্ম্যাটটি ওপেন হওয়া উচিত
  • আন্তঃক্রিয়াযোগ্য : ফাইল বিন্যাসটি অনেকগুলি সিস্টেমের দ্বারা সমর্থিত হওয়া উচিত

আমি ট্যাব এবং কমা দ্বারা পৃথক করা মান ফর্ম্যাটগুলি নির্ভরযোগ্যতার মানদণ্ডে ব্যর্থ। যদিও আমি মনে করি আমি ফাইল ফর্ম্যাটের চেয়ে আমদানি ও রফতানি প্রোগ্রামগুলিকে দোষ দিতে পারি। আমি প্রায়শই নিজেকে read.tableকিছু অদ্ভুত চরিত্রের ডেটা ফ্রেম লোড হওয়া থেকে বিরত রাখতে বিকল্পগুলির সাথে সামান্য সামঞ্জস্য করতে পারি ।

প্রশ্নাবলি

  • কোন ফাইল ফর্ম্যাট সেরা এই চাহিদা পূরণ করে?
  • ডেটা ইন্টারচেঞ্জ ফর্ম্যাট কি আরও ভাল বিকল্প? নাকি এর নিজস্ব সমস্যা আছে?
  • আরও কিছু ফর্ম্যাট আছে যা পছন্দনীয়?
  • আমি কি টিএসভি এবং সিএসভির অন্যায়ভাবে মূল্যায়ন করছি? এই জাতীয় ফাইলগুলির সাথে কাজ করার জন্য কি কোনও সহজ সেট রয়েছে যা ফাইল ফর্ম্যাটটিকে আরও নির্ভরযোগ্য করে তোলে?

2
আমার যুক্ত করা উচিত, আর এর একটি নেই write.DIF()তাই এটি একপেশে রাস্তায় কিছুটা ভীত আমার।
মনিকা পুনরায় ইনস্টল করুন - জি সিম্পসন

1
আমি সিএসভি এবং নির্ভরযোগ্যতার বিষয়টি বুঝতে পারি না। আপনার কি মানে সিএসভি যথেষ্ট কঠোর নয়? স্ট্রাইকটির অর্থ হ'ল যদি এটি সিএসভির জন্য প্রবিধানগুলি যথেষ্ট কঠোর ছিল তবে এই সংজ্ঞাগুলি অনুসরণ করে প্রতিটি সরঞ্জাম অতিরিক্ত পরামিতিগুলির প্রয়োজন ছাড়াই কোনও ফাইল লোড করতে পারে।
স্টিফেন

@ স্টেফেন বলতে আমি যেমন বোঝাতে চাইছি: কিছু প্রোগ্রামে সিএসভি ফাইল লোড করা এবং সংরক্ষণ করা সিএসভি ফাইল পরিবর্তন করে; CSV ফাইলগুলি লোড করার ফলে আপনি সাবধান না হলে অনুচিত রূপান্তর ঘটতে পারে; সিএসভি ফাইলগুলি মাঝে মাঝে ভেঙে যায় যখন যথাযথভাবে অব্যাহতি ছাড়াই অক্ষরের অদ্ভুত সংমিশ্রণ যুক্ত করা হয়। সম্ভবত আমি সিএসভির ব্যবহারটি বিভ্রান্ত করছি নিজেই ফর্ম্যাটের সাথে, যদিও আমি লোকেরা অফিসিয়াল স্ট্যান্ডার্ডের অভাব সম্পর্কে মন্তব্য শুনেছি। অবশ্যই, আমি বুঝতে পারি যে অনেক ক্ষেত্রে এটি ঠিক কাজ করে।
জেরোমি অ্যাংলিম 8'10

5
@ স্টেফেন: সিএসভি ফাইলের মধ্যে থাকা ডেটা ফর্ম্যাট বা ডেটা-ধরণের সম্পর্কে কোনও তথ্য সঞ্চয় করে না। আপনি দুটি ভিন্ন অ্যাপ্লিকেশনে একটি সিএসভি ফাইলটি ভালভাবে খুলতে পারেন এবং ফাইলটিতে থাকা ডেটাটিকে দুটি ভিন্ন উপায়ে ব্যাখ্যা করতে পারেন have
মনিকা পুনরায় ইনস্টল করুন - জি সিম্পসন

1
@ জারোমি ইংলিম, আমি মনে করি যে সিএসভি ফাইল পরিবর্তন আপনার সফ্টওয়্যারের উপর নির্ভর করে, প্রতি সিএসভি ফর্ম্যাট নয়।
রোমান Luštrik

উত্তর:


9

আমি ভাবছি এখানে কোন মানদণ্ডের সংঘর্ষ চলছে কিনা।

এক্সেল, এসকিউএল ইত্যাদির মতো ফাইল ফর্ম্যাট সম্পর্কে একটি অভিযোগ হ'ল এটি ভাল আচরণ করার জন্য আপনাকে ডেটাটাইপগুলি আগে থেকেই সংজ্ঞায়িত করতে হবে, যা "আরও হালকা কিছু ওজন" মাপদণ্ডের বিপরীতে চলে (যেহেতু আমি আপনার বিধিনিষেধকে আরও বেশি সময় বুঝতে পারি) গণনীয় সম্পর্কিত তুলনায় সম্পর্কিত)।

বিপরীতে, যে মানদণ্ডগুলি এটি উপাত্তকে উপগ্রহ করে না, বা ডেটা উপদ্রব করতে দেয় না তার জন্য কিছু ত্রুটি পরীক্ষা করা দরকার। আপনি যদি না স্বয়ংক্রিয়ভাবে ডেটা প্রকারগুলি (যা মূলত যেখানে এক্সেল আপনাকে ব্যর্থ করে চলেছে) সিস্টেমটিকে অটো-যাদু থেকে বের করতে না দেয়, আপনার কেক রাখার এবং এটিকে খাওয়ার কোনও উপায় নেই।

আইএমও, দুজনের মধ্যে, দ্বিতীয় মাপদণ্ড আরও গুরুত্বপূর্ণ। ডেটা অখণ্ডতা, একবার লঙ্ঘন হয়ে গেলে বিশ্লেষণকে কঠিন বা অসম্ভব করে তোলে। হারানো পর্যবেক্ষণ বা অবৈধ মানগুলি (সঠিকভাবে চেক না করা থাকলে) সবকিছু গোলমাল করতে পারে।

ডিআইএফ সম্পর্কিত, প্রকৃত কাঁচা পাঠ্য মানব পাঠযোগ্য নয় এবং মানুষের পক্ষে ডাটা এন্ট্রি করা কঠিন (আইএমও) হবে।

আইএমও, আপনার সীমাবদ্ধ ফাইলগুলি ন্যায্য শেক দেওয়া উচিত। মন্তব্যে উপরে উল্লিখিত হিসাবে, 'ডেটা ম্যাঙ্গেলিং' বেশিরভাগ আপনি যে সরঞ্জামগুলি ব্যবহার করছেন তার একটি সাবসেটের দোষ। ভাল আচরণযুক্ত প্রোগ্রামগুলি সীমিত ফাইলগুলিতে ম্যাঙ্গেল করা উচিত নয়। ম্যাংলিংয়ের সর্বাধিক উত্স হ'ল একটি দুর্বল নির্দিষ্ট ডিলিমিটার। উদাহরণস্বরূপ, যদি আপনার ডেটাতে কমা থাকতে পারে তবে একটি সিএসভি অনুপযুক্ত। এটিতে যদি ট্যাব থাকতে পারে তবে টিএসভি অনুপযুক্ত। অনেকগুলি (তবে সমস্ত নয়) প্রোগ্রামগুলির জন্য আপনি একটি বিকল্প ডিলিমিটার নির্দিষ্ট করতে পারেন। উদাহরণস্বরূপ, আমি বেশ কয়েকটি কঠিন ক্ষেত্রে টিলড (~) ব্যবহার করেছি।


ধন্যবাদ। মনে হচ্ছে উপযুক্ত যত্ন সহ একটি সীমিত ফাইল ফর্ম্যাট ব্যবহার করা সর্বোত্তম বিকল্প হতে পারে।
জেরোমি অ্যাংলিম

6

সমস্ত গম্ভীরতায় আমি আরডি দ্বারা তৈরি আরডিটা ফাইলগুলি এটি ফিট হিসাবে বিবেচনা করব

  • নির্ভরযোগ্য (চেক)
  • সরল (এটিকে একটি অঙ্কন বলুন - ফর্ম্যাটটি বাইনারি)
  • খুলুন (চেক করুন: আর উত্স কোডের চেয়ে বেশি উন্মুক্ত পাবেন না)
  • আন্তঃক্রিয়াযোগ্য (চেক করুন: আর যেখানে কাজ করে সেখানে কাজ করে)

আমার জন্য যথেষ্ট বন্ধ করুন। যদি সিস্টেমগুলি দ্বারা আপনি অপারেটিং সিস্টেমের চেয়ে অ্যাপ্লিকেশনকে বোঝায় তবে শেষ পয়েন্টটি ব্যর্থ।

ওহ, এবং আরডেটা দক্ষ কারণ ফাইলগুলি এখন ডিফল্ট সংকোচিত (যেটি বিকল্প হিসাবে ব্যবহৃত হত যা ডিফল্টরূপে বন্ধ ছিল)।


2
আরডিটা অবশ্যই আর এর সাথে ভালভাবে কাজ করে version এটি সংস্করণ নিয়ন্ত্রণের ক্ষেত্রে সমস্যাযুক্ত হতে পারে। আমি মনে করি আর ফাংশনটি dput()একটি সরল পাঠ্য বিকল্প সরবরাহ করে যা সংস্করণ নিয়ন্ত্রণের সাথে কাজ করবে। তবে, সিএসভি / টিএসভির একটি আবেদন হ'ল আমি যখন ডেটা সহ কোনও সংগ্রহশালা ভাগ করি (জার্নাল নিবন্ধের জন্য বলি), লোকেরা ডেটা নিতে পারে এবং তাদের পছন্দসই সফ্টওয়্যারটি ব্যবহার করে সহজেই এটি পুনর্নবীকরণ করতে পারে।
জেরোমি অ্যাংলিম

1
হ্যাঁ, এটি একটি অত্যন্ত জটিল বিষয়। আমি মনে করি গণনা শুরু হওয়ার পর থেকেই লোকেরা এটি নিয়ে আলোচনা করেছে। আমার আরও দুটি চিন্তা ছিল (এবং আমি আমার উত্তরটি প্রসারিত করতে পারি): পাইথন, জাভা, সি ++, ... এবং অন্যান্য ভাষার একটি হোস্টের সাথে দক্ষতার সাথে ভাগ করার জন্য প্রোটোকলবাফারগুলি ভাল ; রোমেন এবং আমি আর কভার করি The নতুন-ইশ সাইট mldata.org মেশিন লার্নিংয়ের গবেষণার জন্য এটি কভার করে - তাদের কাছে রূপান্তর করার জন্য উপলব্ধ সরঞ্জামাদিও রয়েছে। এটি একটি চেহারা মূল্য হতে পারে।
ডিস্ক এডেলবুয়েটেল

1
আসলে, এসভিএন সমস্যা ছাড়াই বাইনারি ব্লবগুলি যেমন পিডিএফ ফাইল ইত্যাদি গ্রহণ করে। আমি সন্দেহ করি গিটও তা করে।
ডার্ক এডেলবুয়েটেল

বাইনারি ব্লব সম্পর্কে জেনে রাখা ভাল। টেক্সট ফাইলগুলিতে ডিফারেন্ট চালাতে সক্ষম হবেন এবং পরিবর্তনগুলি সম্পর্কে অর্থবহ তথ্য পাবেন still Mldata.org লিঙ্কের জন্য ধন্যবাদ। এটি আকর্ষণীয় দেখায়।
জেরোমি অ্যাংলিম

প্লেজার। বোন সাইট mloss.org কেবল দুর্দান্ত, যদি তারা আশা করেন যে তারা mldata.org এর জন্য সন্ধান পাবেন। সময়টি তার জন্য উপযুক্ত।
ডার্ক এডেলবুয়েটেল

4

ডর্ক এডেলবুয়েটেলের উত্তরের প্রতিক্রিয়া হিসাবে, আমি এইচডিএফ 5 ফাইল ফর্ম্যাটটি ব্যবহার করার পরামর্শ দিচ্ছি । এটি আরডিটা ফর্ম্যাটের চেয়ে কম সহজ, বা আপনি বলতে পারেন, 'আরও ধনী', তবে অবশ্যই আরও ইন্টারঅ্যাপেবল (সি, জাভা, মতলব ইত্যাদি ব্যবহার করা যেতে পারে)। আমি দেখতে পেয়েছি যে বড় বড় এইচডিএফ 5 ফাইল যুক্ত আই / ও খুব দ্রুত।


(+1) নেটসিডিএফ এর সাথে তুলনা করে এর অভিনয় সম্পর্কে কোনও চিন্তা ?
chl

আইআইআরসি এটি mldata.org এ নির্বাচিত অভ্যন্তরীণ ফর্ম্যাট - একটি সরঞ্জামের স্যুট যা রূপান্তর করে। রূপান্তরকারীগুলি এক নজর দেখার মতো হতে পারে। আমার সর্বদা অনুভূতি ছিল যে এইচডিএফ 5 এর জন্য আর সমর্থনটি যে নিখুঁত ছিল কম।
ডার্ক এডেলবুয়েটেল

@ সিএইচএল আমি অস্পষ্টভাবে ভেবেছিলাম যে নেটসিডিএফ এইচডিএফ 5 অভ্যন্তরীণভাবে ব্যবহার করেছে, তবে এটি বেশ সঠিক বলে মনে হচ্ছে না।
shabbychef

2

যথাযথ মেটা ডেটা সহ স্থির পাঠ্য বিন্যাস কেন আপনার মানদণ্ড পূরণ করে না তা আমি নিশ্চিত নই। ডিলিমিটার হিসাবে পড়া সহজ নয় তবে যাইহোক তথ্য ব্যবহারের জন্য আপনার মেটাডেটা দরকার। প্রোগ্রামটি পড়তে সিনট্যাক্স লেখার কাজটি কেবল নির্ভর করে যে ডেটাসেটের কাঠামোটি কতটা বড় এবং জটিল। এসপিএসএস এবং এক্সেলের এই কর্মগুলিতে সহায়তা করার জন্য একটি জিইউআই রয়েছে।

আমি যে সিএসভি ফাইল দিয়ে এসেছি সেগুলির মধ্যে কেবল দুটি ত্রুটি রয়েছে:

  1. সীমানা ছাড়াই ক্ষেত্রগুলি অনুপস্থিত (সুতরাং সেই রেকর্ডের প্রতিটি ক্ষেত্রই ভুল জায়গায় প্রতিস্থাপন করা হয়েছে, এক্সএমএলটিতে হারিয়ে যাওয়া ট্যাগগুলি নিয়েও আমার এই সমস্যা হয়েছিল)
  2. একটি পাঠ্য স্ট্রিংয়ের মধ্যে একটি কমা

(যদি আপনি অন্যান্য সমস্যার মুখোমুখি হন তবে উদাহরণ দিতে নির্দ্বিধায়)

দুটি আরও অনিয়মিত ডিলিমিটারের সাথে সমাধান করা হয়েছে কারণ ড্রেনেক্সাস প্রস্তাবিত (পাইপ (|) হ'ল একটি যার আগে আমি মুখোমুখি হয়েছি, তবে একটি টিলড (~) ঠিক তেমন কাজ করে যা উভয়ই স্ট্রিং ফিল্ডে অন্তর্ভুক্ত হওয়ার সম্ভাবনা নেই)) একটি হ'ল একটি আপনি যে সফ্টওয়্যারটি ব্যবহার করছেন তা সহজেই সমাধান করা যায় না, এবং ফাইল দুটি পড়ার জন্য ব্যবহার করা সফ্টওয়্যার নয়, লোকেরা যেভাবে ফাইলগুলি শুরু করার জন্য লিখেছিল তা নিয়েই সমস্যা।

আমি এও বলতে চাই যে আমি এই থ্রেড এবং এই ফাইলগুলি সম্পাদনা করার বিষয়ে আপনার সাম্প্রতিক থ্রেডে তার প্রতিক্রিয়া উভয় নিয়েই ড্রেনেক্সাসের সাথে একমত । আপনি যে সফ্টওয়্যারটি ব্যবহার করেন (বিশেষত এক্সেল) সম্পর্কে অভিযোগ করছেন এবং আপনার খারাপ আচরণ করা সফ্টওয়্যারটির সাথে সামঞ্জস্য রেখে এমন ফর্ম্যাটে ডেটা সঞ্চয় করতে বলছেন বলে মনে হচ্ছে। প্লেইন টেক্সট ফাইলগুলিকে স্বতঃ-বিন্যাস বন্ধ করতে কীভাবে এক্সেল পাবেন তা হয়তো প্রশ্ন হওয়া উচিত। আপনার নির্ভরযোগ্য মানদণ্ডটি আমার কাছে যেমন দেখা যাচ্ছে তেমনি প্লেইন পাঠ্য ফাইলগুলি পড়ার ক্ষেত্রে একটি সফ্টওয়্যার সমস্যা। আমি ডেটা ম্যানেজমেন্টের জন্য আর ব্যবহার করি না, তবে এসপিএসএসে সীমাবদ্ধ ফাইলগুলি পড়ার মতো আমার পক্ষে এতটা কষ্টসাধ্য হয়নি যে আপনি পরামর্শ দিচ্ছেন বলে মনে হচ্ছে।

যদি মূল ফাইলগুলি সঠিকভাবে লেখা না থাকে তবে আপনি কোনও সফ্টওয়্যারকে নির্ভরযোগ্যভাবে ফাইলটি পড়ার আশা করতে পারেন? এবং একটি নির্দিষ্ট ফাইল ফর্ম্যাট অবশ্যই আপনাকে ভুল ফাইল শুরু করতে বেছে নিবে না কেন ফাইল টাইপ টাইপ।


(1) আমি কোনও আরডিটা, এক্সেল বা এসপিএসএস ডেটা ফাইল খুলতে পারার সাথে সাথে সহজেই ডেটা ফাইলটি খুলতে এবং বন্ধ করতে সক্ষম হতে চাই। উইজার্ডের মাধ্যমে হাঁটার সময় ব্যয় করা কাজ করে তবে এটি আদর্শ এবং নির্ভরযোগ্য ওয়ার্কফ্লো নয় not (২) হ্যাঁ, আমি একটি অনিয়মিত ডিলিমিটার ব্যবহারের বিষয়ে সম্মত। সাধারণভাবে ট্যাব আমার বেশিরভাগ সময়ই যথেষ্ট; (3) আমার সিএসভি / টিএসভি নিয়ে বিশাল সমস্যা নেই। আমার মাঝে মাঝে সমস্যা হয় যা সহজেই সমাধান হয়ে যায়। তবে আমি চাই না যে ডিলিমিটারগুলি এবং ফর্ম্যাট রূপান্তর সম্পর্কিত সমস্যাগুলি নিয়ে ভাবতে হবে।
জেরোমি অ্যাংলিম

@ জারোমি অ্যাংলিম, পয়েন্ট # 1 এর জন্য, আমি অনুমান করব যে আপনি সাধারণত এটি করতে পারেন কেবল একবার (আপনি যদি দুটি ভিন্ন পরিবেশের মধ্যে ঘন ঘন মাইগ্রেট করেন যা অন্যদের ফাইলগুলি পড়তে বা আউটপুট করতে না পারে)। পয়েন্ট # 3 এর জন্য, নির্দিষ্ট পাঠ্য ফাইলগুলি সেই সমস্যাটি ঠিক করে। আমি কখনই এমন পরিস্থিতিতে পৌঁছতে পারি নি যেখানে এসপিএসএস একটি ভুল ফাইল টাইপকে ভুলভাবে ফর্ম্যাট করে। আপনার যদি ফাইলগুলি ছড়িয়ে দেওয়ার প্রয়োজন না হয় তবে এই পুরো প্রশ্নটি নিঃশব্দ, যদি আপনি যে পরিবেশে কাজ করছেন সেখানে সঠিকভাবে সংরক্ষণ করার জন্য যদি ফাইলটি পেতে পারেন তবে রূপান্তর / সঞ্চয় করার দরকার নেই।
অ্যান্ডি ডব্লু

1

সাধারণ পাঠ্য বিন্যাসের সাথে সাধারণ সমস্যাটি হ'ল এটি মেটাডেটা সঞ্চয় করতে পারে না। আপনি কীভাবে অনুপস্থিত তথ্য সংজ্ঞায়িত করবেন? আপনি কীভাবে 1 = দৃ strongly়ভাবে অসমত, 2 = অসম্মতি, ... সরল পাঠ্য বিন্যাসে ধরণের জিনিস সংজ্ঞা দেন? সাধারণ পাঠ্য বিন্যাসের সাথে, আপনাকে সেই মেটাডেটা সংজ্ঞায়িত করতে অন্য ডকুমেন্ট ব্যবহার করতে হবে। এবং এক্সএমএল করা সহজ নয়।

কখনও কখনও এই সমস্যা খুব ঝামেলা হতে পারে।

আমার সমাধান হ'ল এসপিএসএস ডেটা ফর্ম্যাটটি ব্যবহার করা, যা স্ব-অন্তর্ভুক্ত এবং এসপিএসএসে সম্পাদনা করা সহজ। আমি জানি এটি আপনার প্রশ্নের সঠিক উত্তর নয়, তবে আমি দীর্ঘদিন ধরে একই সমস্যার জন্য লড়াই করে যাচ্ছি এবং এটি আমার বর্তমান সমাধান।

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