Data.table: [R-Forge # 5580] fungsi tak terlihat menjadi terlihat dalam ekspresi-j

Dibuat pada 8 Jun 2014  ·  8Komentar  ·  Sumber: Rdatatable/data.table

Dikirim oleh: Eduard Antonyan; Ditugaskan ke: Tidak ada; Tautan R-Forge

fn = function() {invisible(1:5)}

dt[, fn()]
# [1] 1 2 3 4 5

Ini cukup mengganggu saat menggunakan misalnya boxplot .

bug wontfix

Komentar yang paling membantu

Tidak, itu karena R secara internal memaksa visibilitas pada [ tidak seperti with() . Lihat FAQ 2.22 .

Semua 8 komentar

@eantonya dapatkah Anda memberikan contoh penggunaan dengan boxplot ?

Masalah di sini sangat terkait dengan := , seperti yang dijelaskan di FAQ 2.22 .

Hal terbaik yang bisa kita lakukan adalah mengembalikan _iff_ fn() mengembalikan data.table . Lain, kita harus memodifikasi _all_ metode cetak dengan cara yang sama bagaimana print.data.table melakukannya dengan cerdik menggunakan .global$print .

Saya telah menambahkan label 'tidak akan diperbaiki' untuk saat ini. Karena ini masalah dengan cara basis R memaksa visibilitas pada [ . Jika Anda setuju, kami dapat menutupnya seperti itu (kecuali ada alternatif yang dapat kami berikan).

Menandai @mattdowle juga.

Saya pikir ini mungkin identik dengan # 1471. Baru saja menemukan ini.

Sayang sekali R tidak mengembalikan sesuatu dengan atribut "invisible" jika itu adalah hasil dari invisible . Itu akan membuat ini mudah.

Menautkan kembali ke http://stackoverflow.com/a/36093766/403310 yang tertaut di sini. Kami dapat mengunjungi kembali FAQ 2.18 (solusi di sana tidak berhasil untuk saya ketika saya baru saja mengujinya) serta 2.22 dan lebih dari setahun telah berlalu sejak terakhir kali kami melihat sehingga upaya lain mungkin harus dilakukan.

Hmm. Baru saja memperhatikan bahwa with(dt, fn()) _doesn't_ mencetak output. Saya kira ini terkait dengan seluruh masalah .global$print lebih dari apa pun.

Tidak, itu karena R secara internal memaksa visibilitas pada [ tidak seperti with() . Lihat FAQ 2.22 .

Tidak bisakah penindasan cetak global yang sama yang bekerja dengan := berfungsi di sini?

sesuai komentar Arun, kami tidak dapat berbuat banyak tentang R's [ memaksa visibilitas, solusinya adalah membungkus ekspresi data.table Anda menjadi invisible .

Apakah halaman ini membantu?
0 / 5 - 0 peringkat