سؤال

كيف يمكنني تصحيح Rscripts التي يتم تشغيلها من سطر الأوامر؟

أنا أستخدم حاليا getopt حزمة لتمرير خيارات سطر الأوامر، عندما يكون هناك خطأ، فمن الصعب بالنسبة لي:

  1. انظر ما الخطأ الذي حدث بالضبط؛
  2. تصحيح بشكل تفاعلي في R (نظرًا لأن البرنامج النصي يتوقع خيارات سطر الأوامر.)

هل لدى أي شخص رمز مثال وعلى استعداد للمشاركة؟

هل كانت مفيدة؟

المحلول

يمكنك تمرير وسيطات سطر الأوامر الخاصة بك إلى غلاف تفاعلي باستخدام --args ثم المصدر ('') البرنامج النصي.

$ R --args -v

R version 2.8.1 (2008-12-22)
Copyright (C) 2008 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> require(getopt)
Loading required package: getopt
> opt = getopt(c(
+ 'verbose', 'v', 2, "integer"
+ ));
> opt
$verbose
[1] 1
> source('my_script.R')

يمكنك الآن استخدام وظيفة المتصفح القديمة () لتصحيح الأخطاء.

نصائح أخرى

إما أن أستخدم بيانات المدرسة القديمة المطبوعة، أو التحليل التفاعلي.لذلك، أقوم أولاً بحفظ الحالة باستخدام save(), ، ثم قم بتحميل ذلك في جلسة تفاعلية (والتي أستخدم فيها Emacs/ESS).يسمح ذلك بالعمل التفاعلي باستخدام كود البرنامج النصي على أساس سطر بسطر.

لكنني غالبًا ما أكتب/أختبر/أصحح الكود في الوضع التفاعلي أولاً قبل النشر في برنامج نصي أصغر.

خيار آخر هو العمل مع وظيفة الخيارات (الخطأ).إليك مثال بسيط:

options(error = quote({dump.frames(to.file=TRUE); q()}))

يمكنك إنشاء برنامج نصي مفصل كما تريد في حالة وجود خطأ، لذلك يجب عليك فقط تحديد المعلومات التي تحتاجها لتصحيح الأخطاء.

بخلاف ذلك، إذا كانت هناك مجالات محددة تثير قلقك (على سبيل المثال.الاتصال بقاعدة بيانات)، ثم قم بتغليفها في دالة TryCatch().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top