কিছু সময়, glm.fit
ডাকা হচ্ছে। ফাংশন আপনাকে কল মাধ্যমে এক বা ফাংশন যারা ফাংশন ডাকা হয় ব্যবহার করছে হল যে glm
, glm.fit
।
এছাড়াও, আমি উপরে আমার মন্তব্যে উল্লেখ, যে একটি হল সতর্কবার্তা নয় ত্রুটি , যা একটি বড় পার্থক্য তোলে। আপনি কোনও সতর্কতা থেকে আর এর ডিবাগিং সরঞ্জামগুলির কোনওটি ট্রিগার করতে পারবেন না (কেউ আমাকে ভুল বলার আগে আমি ডিফল্ট বিকল্প দিয়ে ;-)।
সতর্কতাগুলিকে ত্রুটিতে পরিণত করতে যদি আমরা বিকল্পগুলি পরিবর্তন করি তবে আমরা আর এর ডিবাগিং সরঞ্জামগুলি ব্যবহার শুরু করতে পারি। আমাদের থেকে ?options
:
‘warn’: sets the handling of warning messages. If ‘warn’ is
negative all warnings are ignored. If ‘warn’ is zero (the
default) warnings are stored until the top-level function
returns. If fewer than 10 warnings were signalled they will
be printed otherwise a message saying how many (max 50) were
signalled. An object called ‘last.warning’ is created and
can be printed through the function ‘warnings’. If ‘warn’ is
one, warnings are printed as they occur. If ‘warn’ is two or
larger all warnings are turned into errors.
সুতরাং যদি আপনি চালান
options(warn = 2)
তারপরে আপনার কোডটি চালান, আর একটি ত্রুটি ফেলবে। যে মুহুর্তে, আপনি চালাতে পারে
traceback()
কল স্ট্যাক দেখতে। এখানে একটি উদাহরণ।
> options(warn = 2)
> foo <- function(x) bar(x + 2)
> bar <- function(y) warning("don't want to use 'y'!")
> foo(1)
Error in bar(x + 2) : (converted from warning) don't want to use 'y'!
> traceback()
7: doWithOneRestart(return(expr), restart)
6: withOneRestart(expr, restarts[[1L]])
5: withRestarts({
.Internal(.signalCondition(simpleWarning(msg, call), msg,
call))
.Internal(.dfltWarn(msg, call))
}, muffleWarning = function() NULL)
4: .signalSimpleWarning("don't want to use 'y'!", quote(bar(x +
2)))
3: warning("don't want to use 'y'!")
2: bar(x + 2)
1: foo(1)
এখানে আপনি চিহ্নিত 4:
এবং উচ্চতর ফ্রেমগুলি উপেক্ষা করতে পারেন । আমরা দেখি যে foo
বলা হয়bar
এবং bar
এটি সতর্কবার্তা উত্পন্ন করেছে। এটি আপনাকে দেখাতে পারে যে কোন ফাংশনগুলি কল করেছিল glm.fit
।
আপনি যদি এখন এটি ডিবাগ করতে চান, আমরা আর কোনও বিকল্পের দিকে ফিরে যেতে পারি যখন এটির ত্রুটির মুখোমুখি হওয়ার সময় ডিবাগারটি enterুকতে বলা হয় এবং আমরা যখন সতর্কবার্তা ত্রুটি করেছি তখন আমরা যখন মূল সতর্কতাটি ট্রিগার করা হবে তখন আমরা একটি ডিবাগারটি পেয়ে যাব। তার জন্য আপনার চালানো উচিত:
options(error = recover)
এখানে একটি উদাহরণ:
> options(error = recover)
> foo(1)
Error in bar(x + 2) : (converted from warning) don't want to use 'y'!
Enter a frame number, or 0 to exit
1: foo(1)
2: bar(x + 2)
3: warning("don't want to use 'y'!")
4: .signalSimpleWarning("don't want to use 'y'!", quote(bar(x + 2)))
5: withRestarts({
6: withOneRestart(expr, restarts[[1]])
7: doWithOneRestart(return(expr), restart)
Selection:
সতর্কতা নিক্ষেপ করার পরে কী ঘটছে তা দেখতে আপনি সেই ফ্রেমের কোনও একটিতে পদক্ষেপ নিতে পারেন।
উপরের বিকল্পগুলি তাদের ডিফল্টে পুনরায় সেট করতে, প্রবেশ করান
options(error = NULL, warn = 0)
আপনি যে নির্দিষ্ট সতর্কতাটির উদ্ধৃতি দিয়েছিলেন তা হিসাবে, সম্ভবত কোডটিতে আপনাকে আরও পুনরাবৃত্তির অনুমতি দেওয়ার প্রয়োজন সম্ভবত। একবার আপনি কী ডাকছেন তা সন্ধান করার পরে glm.fit
কীভাবে এটি control
যুক্তিটি পাস করবেন তা ব্যবহার করুন glm.control
- দেখুন ?glm.control
।