কোনও ওয়ার্কস্পেস লোড করার সময় "খারাপ যাদু নম্বর" ত্রুটির কারণ এবং কীভাবে এড়ানো যায়?


96

আমি আমার আর ওয়ার্কস্পেসটি লোড করার চেষ্টা করেছি এবং এই ত্রুটিটি পেয়েছি:

Error: bad restore file magic number (file may be corrupted) -- no data loaded
In addition: Warning message:
file ‘WORKSPACE_Wedding_Weekend_September’ has magic number '#gets'
   Use of save versions prior to 2 is deprecated 

আমি প্রযুক্তিগত বিশদ সম্পর্কে বিশেষভাবে আগ্রহী নই, তবে বেশিরভাগ ক্ষেত্রেই আমি এটি কীভাবে তৈরি করেছি এবং ভবিষ্যতে কীভাবে এটি প্রতিরোধ করতে পারি তার মধ্যে। পরিস্থিতি সম্পর্কে এখানে কিছু নোট রয়েছে:

  1. আমি বুটক্যাম্প পার্টিশনে উইন্ডোজ এক্সপি চালিত ম্যাকবুক প্রোতে আর 2.15.1 চালাচ্ছি।
  2. এই কর্মক্ষেত্রের ফাইলটিতে স্পষ্টতই কিছু ভুল আছে, যেহেতু এটির ওজন মাত্র ~ 80 কেবি হয় তবে আমার সমস্ত অন্যান্য সাধারণত 10,000 ডলার হয়
  3. উইকএন্ডের শেষের দিকে আমি আর-তে একটি বাহ্যিক মডেলিং প্রোগ্রাম চালাচ্ছিলাম এবং এর আউটপুটটি বিভিন্ন অবজেক্টে সংরক্ষণ করছি। আমি বেশ কয়েক দিন ধরে মডেলটির কয়েকটি পুনরাবৃত্তি চালিয়েছি, যেমন আউটপুট_স্যাটারডে <- কল_মডেল ()
  4. মডেল আউটপুটটিতে বিশেষ কিছু নেই, এটি কেবলমাত্র বেতাস, ভিসি-ম্যাট্রিকেস, মডেল স্পেসিফিকেশন ইত্যাদির জন্য স্লট সহ একটি তালিকা

9
অনুমান করুন: এটি কোনও ওয়ার্কস্পেস ফাইল নয়, এটি আরআর কমান্ডের লগ।
জোশুয়া আলরিখ

4
আমারও একই সন্দেহ, এর source(filename)পরিবর্তে এটি লোড করার চেষ্টা করুন load(filename)
12

বাম্মার - চেক করতে হবে। আমি যদি দাবি করতে পারি যে এটি একটি প্রাথমিক ভুল ছিল wish
এন ব্রাউয়ার 21

4
কি @JoshuaUlrich বলেন অনুরূপ, আমি loadকিছু ছিল ed write.tableবদলে ed saveইডি এবং এই ত্রুটি পেয়েছিলাম। উফ!
isomorphismes

আমি যখন একটি ডেটাবেস লোড করব তখন loadকোথায় loadDbব্যবহার করা উচিত এই ত্রুটিটি পেয়েছি ।
mt1022

উত্তর:


113

আমি যখন ত্রুটিযুক্তভাবে বা এর load()পরিবর্তে ব্যবহার করি তখন আমি সেই ত্রুটিটি পেয়েছি ।source()readRDS()


4
আমিও তখন করেছি, যখন আমি ঘটনাক্রমে load()পরিবর্তে ব্যবহার করেছি read.csv()। : পি
ওয়াল্ডির লিওনসিও

35
আমি কি, ভাগ 2, যখন আমি ঘটনাক্রমে load()পরিবর্তে ব্যবহার করেছি readRDS()(হ্যাঁ, 9 মাস পরে, আমি আবার বেশিরভাগ একই ভুলের জন্য ফিরে এসেছি)।
ওয়াল্ডির লিওনসিও

36

V3.5.0 ( এখানে ) এর পরে আর এর সংস্করণগুলির পরিবর্তনের সংক্ষিপ্তসার করে আর কোর টিমের একটি নথি থেকে নিম্নলিখিতটি লক্ষণীয় :

আর এর নতুন সিরিয়ালাইজেশন ফর্ম্যাট (সংস্করণ 3) রয়েছে যা ALTREP কাঠামোগত অবজেক্টের কাস্টম সিরিয়ালাইজেশন সমর্থন করে ... ফর্ম্যাট 3-এ সিরিয়ালযুক্ত ডেটা আরএস এর সংস্করণে 3.5.0 সংস্করণের পূর্বে পড়া যায় না।

আমি এই সমস্যার মুখোমুখি হয়েছি যখন আমি v3.6.0 এ একটি ওয়ার্কস্পেস সংরক্ষণ করেছি এবং তারপরে v3.4.2 ব্যবহার করা কোনও সহকর্মীর সাথে ফাইলটি ভাগ করেছি। আমি আমার সেভ ফাংশনে "version = 2" যুক্ত করে সমস্যাটি সমাধান করতে সক্ষম হয়েছি।


4
এটি অবিশ্বাস্যরূপে সহায়ক!
উলফসঠসেদুর


ধন্যবাদ! এটি আমার ক্ষেত্রে সহায়তা করেছে (কেবলমাত্র উবুন্টু সংগ্রহশালা থেকে আর ইনস্টল করেছিল - এবং কয়েক সপ্তাহ আগে আর এর কিছুটা নতুন সংস্করণ ব্যবহার করে অন্য একটি মেশিনে তৈরি করা একটি আরডিটা ফাইল খোলার চেষ্টা করেছি)
লেবটসনোক

18

ধরে নিচ্ছি আপনার ফাইলটির নাম দেওয়া হয়েছে "myfile.ext"

আপনি যে ফাইলটি লোড করার চেষ্টা করছেন তা যদি কোনও আর-স্ক্রিপ্ট না হয়, যার জন্য আপনি ব্যবহার করবেন

source("myfile.ext")

আপনি এই readRDSফাংশনটি চেষ্টা করে দেখতে পারেন এবং এটি একটি ভেরিয়েবল-নামকে প্রদান করতে পারেন:

my.data <- readRDS("myfile.ext")

9

ম্যাজিক নম্বরটি ইউনিক্স-টাইপ সিস্টেম থেকে আসে যেখানে কোনও ফাইলের প্রথম কয়েকটি বাইট ফাইলের ধরণের নির্দেশক হিসাবে চিহ্নিত করে held

এই ত্রুটিটি নির্দেশ করে যে আপনি কোনও অ-বৈধ ফাইল টাইপ আর-তে লোড করার চেষ্টা করছেন some কিছু কারণে, আর আর এই ফাইলটিকে আর ওয়ার্কস্পেস ফাইল হিসাবে স্বীকৃতি দেয় না।


6

readrপ্যাকেজ ইনস্টল করুন , তারপরে ব্যবহার করুন library(readr)


4
দুর্দান্ত কৌশল ... আমাকে বেশ কয়েকটি প্যাক ফাংশন চেষ্টা করতে হয়েছিল তবে readr::এটি দিয়ে ফাংশনগুলির মাধ্যমে স্ক্যান করা সহজ। readr::read_rdsশেষ পর্যন্ত আমার জন্য এটিই কাজ করেছিল।
ম্যাট ব্যানার 20

4

আপনি যখন load()আরডিএস ব্যবহার করার পরিবর্তে কোনও বস্তুর চেষ্টা করেন তখন এটিও ঘটে

object <- readRDS("object.rds")

2

একটি আর প্যাকেজ তৈরি করার সময় আমি ত্রুটি পেয়েছি (রক্সজেন 2 ব্যবহার করে)

আমার ক্ষেত্রে কারণ যে আমি সংরক্ষিত ছিল data/mydata.RDataসঙ্গে saveRDS()বদলে save()। যেমনsave(iris, file="data/iris.RData")

এটি আমার জন্য সমস্যাটি স্থির করেছে। আমি এই তথ্য এখানে পেয়েছি

আরও মনে রাখবেন যে save()/ load()অবজেক্টটি একই নামের সাথে লোড করা হয় এটি প্রাথমিকভাবে সংরক্ষণ করা হয় (যেমন আপনি এটির নামের আগে আর পরিবেশে ইতিমধ্যে লোড না করা পর্যন্ত আপনি এটির নাম পরিবর্তন করতে পারবেন না) আপনি প্রথমে এটি সংরক্ষণ করার পরে)।


1

আমি যখন আরডাটা ফাইলটি আর এর একটি পুরানো সংস্করণে সংরক্ষণ করেছি তখন আমি এই সমস্যাটি পেয়েছিলাম এবং তারপরে আমি একটি নতুন খোলার চেষ্টা করেছি। আমি আমার আর সংস্করণটি সর্বশেষতমে আপডেট করে সমাধান করেছি।


0

আপনি যদি কাজ devtoolsকরে থাকেন তবে ফাইলগুলি সংরক্ষণের চেষ্টা করুন:

devtools::use_data(x, internal = TRUE)

তারপরে, পূর্বে সংরক্ষিত সমস্ত ফাইল মুছুন।

ডক থেকে:

অভ্যন্তরীণ যদি মিথ্যা হয়, প্রতিটি ডিরেক্টরিকে ডাটা ডিরেক্টরিতে .rda ফাইলগুলিতে সংরক্ষণ করে। যখনই প্যাকেজ লোড হয় এগুলি উপলব্ধ। যদি সত্য হয় তবে একক আর / sysdata.rda ফাইলে সমস্ত বস্তু সঞ্চয় করে। এই বস্তুগুলি কেবল প্যাকেজের মধ্যেই উপলব্ধ।

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