Data.table: Pemeriksaan R CMD CATATAN: Tidak ada ikatan yang terlihat untuk variabel global

Dibuat pada 2 Okt 2014  ·  3Komentar  ·  Sumber: Rdatatable/data.table

Paket yang menggunakan data.table (dan saya percaya dplyr juga) mendapatkan CATATAN ini (mungkin banyak) dari pemeriksaan R CMD. Apakah ada yang bisa kita lakukan? Itu hanya CATATAN jadi bisa diabaikan, tapi meski begitu.

Mungkin menyediakan fungsi yang mendeteksi simbol-simbol itu dan membuat panggilan globalVariables() secara otomatis untuk pembuat paket.

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, itu akan membutuhkan perubahan ke 'R CMD check' untuk membuatnya sadar akan "evaluasi non-standar" yang digunakan oleh data.table dan dplyr. Itu adalah masalah yang sulit (bahkan mungkin tidak mungkin tanpa menjalankan kode). Jadi fungsi ?globalVariables telah ditambahkan ke R di 2.15.1 dan mungkin yang kurang dikenal adalah bahwa ?dontCheck telah ditambahkan di R 3.1.0 yang dapat digunakan untuk membungkus kueri menggunakan NSE. Ini lebih baik daripada <-NULL yang memiliki risiko membungkam kesalahan yang sebenarnya (atau mungkin membuat yang baru) di area lain dari kode, serta yang menggunakan NSE.

Komentar yang paling membantu

@cderv Anda bisa menetapkan NULL ke variabel sebelum menggunakannya (tidak bingung dengan menimpanya). Jadi Anda tidak mendefinisikan variabel global, tetapi hanya mendefinisikannya secara lokal dalam fungsi di mana Anda menggunakannya. Saya rasa kita tidak perlu membahasnya dengan cara khusus. Penutupan untuk saat ini karena masalah ini menunggu selama 2 tahun tanpa poin tindakan yang ditentukan, dan sebenarnya bukan masalah data.table.

Semua 3 komentar

Tidak bisa selalu diabaikan; beberapa paket ditolak, dan penulis diberitahu oleh CRAN untuk menggunakan globalVariables untuk menekan CATATAN. Misalnya:

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

Hai,
ini adalah masalah lama tetapi tidak ditutup. Saya bertanya-tanya apakah sekarang ada solusi baru?
Jika tidak, praktik baik apa yang harus diikuti? masih globalVariables ?

Saya suka ide

fungsi yang mendeteksi simbol-simbol itu dan membuat globalVariables()

Terima kasih.

@cderv Anda bisa menetapkan NULL ke variabel sebelum menggunakannya (tidak bingung dengan menimpanya). Jadi Anda tidak mendefinisikan variabel global, tetapi hanya mendefinisikannya secara lokal dalam fungsi di mana Anda menggunakannya. Saya rasa kita tidak perlu membahasnya dengan cara khusus. Penutupan untuk saat ini karena masalah ini menunggu selama 2 tahun tanpa poin tindakan yang ditentukan, dan sebenarnya bukan masalah data.table.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat