Data.table: فحص R CMD ملاحظة: لا يوجد ارتباط مرئي للمتغير العام

تم إنشاؤها على ٢ أكتوبر ٢٠١٤  ·  3تعليقات  ·  مصدر: Rdatatable/data.table

الحزم التي تستخدم data.table (وأعتقد أن dplyr أيضًا) تحصل على هذه الملاحظة (ربما كثيرة) من فحص R CMD. هل هناك أي شيء يمكننا القيام به؟ إنها مجرد ملاحظة لذلك يمكن تجاهلها ، ولكن مع ذلك.

ربما توفر وظيفة تكتشف هذه الرموز وتقوم بإنشاء استدعاء globalVariables() تلقائيًا لمؤلف الحزمة.

http://stackoverflow.com/questions/15409806/r-package-compilation-with-dependency-on-data-table
http://stackoverflow.com/questions/8096313/no-visible-binding-for-global-variable-note-in-r-cmd-check

IIUC ، سيحتاج إلى تغيير "R CMD check" لجعله على دراية "بالتقييم غير القياسي" الذي يستخدمه كل من data.table و dplyr. هذه مشكلة صعبة (ربما مستحيلة بدون تشغيل الكود). لذلك تمت إضافة الدالات ?globalVariables إلى R في 2.15.1 وربما يكون أقل شهرة هو أنه تمت إضافة ?dontCheck في R 3.1.0 والذي يمكن استخدامه لالتفاف الاستعلامات باستخدام NSE. هذه أفضل من <-NULL والتي تنطوي على مخاطر إسكات الأخطاء الحقيقية (أو ربما إنشاء أخطاء جديدة) في مناطق أخرى من الكود ، بالإضافة إلى تلك التي تستخدم NSE.

التعليق الأكثر فائدة

cderv ، يمكنك فقط تعيين NULL للمتغير قبل استخدامه (لا تخلط بينه وبين تجاوزه). لذلك فأنت لا تحدد المتغيرات العالمية ، ولكن تقوم فقط بتعريفها محليًا في وظيفة تستخدمها فيها. لا أعتقد أننا بحاجة إلى معالجة ذلك بأي طريقة خاصة. يتم الإغلاق في الوقت الحالي لأن المشكلة تنتظر عامين بدون تحديد نقاط العمل ، وهي ليست مشكلة في جدول البيانات حقًا.

ال 3 كومينتر

لا يمكن بالضرورة تجاهله ؛ تم رفض بعض الحزم ، وطلب CRAN من المؤلفين استخدام globalVariables لإلغاء الملاحظات. على سبيل المثال:

http://stackoverflow.com/questions/9439256/how-can-i-handle-r-cmd-check-no-visible-binding-for-global-variable-notes-when#comment20826625_12429344

أهلا،
إنها قضية قديمة ولكنها لم تغلق. كنت أتساءل ما إذا كان هناك الآن حل جديد؟
وبخلاف ذلك ، ما هي الممارسة الجيدة التي يجب اتباعها؟ لا يزال globalVariables ؟

تعجبني فكرة

دالة تكشف هذه الرموز وتنشئ globalVariables()

شكرا لك.

cderv ، يمكنك فقط تعيين NULL للمتغير قبل استخدامه (لا تخلط بينه وبين تجاوزه). لذلك فأنت لا تحدد المتغيرات العالمية ، ولكن تقوم فقط بتعريفها محليًا في وظيفة تستخدمها فيها. لا أعتقد أننا بحاجة إلى معالجة ذلك بأي طريقة خاصة. يتم الإغلاق في الوقت الحالي لأن المشكلة تنتظر عامين بدون تحديد نقاط العمل ، وهي ليست مشكلة في جدول البيانات حقًا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات