Eingereicht von: Eduard Antonyan; Zugewiesen an: Niemand; R-Forge Link
fn = function() {invisible(1:5)}
dt[, fn()]
# [1] 1 2 3 4 5
Dies ist ziemlich ärgerlich, wenn Sie zB boxplot
.
@eantonya Könnten Sie eine Beispielverwendung mit boxplot
angeben ?
Das Problem hier hängt sehr stark mit :=
, wie in FAQ 2.22 erläutert.
Das Beste, was wir tun können, ist, unsichtbar zurückzugeben _iff_ fn()
gibt ein data.table
. Andernfalls müssen wir _all_ die Druckmethoden auf die gleiche Weise ändern, wie es print.data.table
mit .global$print
.
Ich habe das Label "wird nicht repariert" für jetzt hinzugefügt. Da es ein Problem mit der Art und Weise ist, wie Basis R die Sichtbarkeit auf [
erzwingt. Wenn Sie damit einverstanden sind, können wir dies als solches schließen (es sei denn, wir können eine Alternative finden).
Markieren Sie auch
Ich denke, das könnte mit # 1471 identisch sein. Ich hab das hier gerade gefunden.
Es ist schade, dass R nichts mit einem "invisible"
-Attribut zurückgibt, wenn es das Ergebnis von invisible
. Das würde das einfach machen.
Link zurück zu http://stackoverflow.com/a/36093766/403310, der hier verlinkt. Wir könnten FAQ 2.18 (die Lösung dort hat bei mir nicht funktioniert, als ich sie gerade getestet habe) sowie 2.22 erneut aufrufen und mehr als ein Jahr ist vergangen, seit wir das letzte Mal nachgesehen haben, sodass möglicherweise ein weiterer Versuch fällig ist.
Hmm. Ich habe gerade bemerkt, dass with(dt, fn())
die Ausgabe nicht druckt. Ich denke, dies hängt mehr als alles andere mit dem gesamten Problem von .global$print
.
Nein, es liegt daran, dass R intern die Sichtbarkeit von [
erzwingt, im Gegensatz zu with()
. Siehe FAQ 2.22 .
Kann hier nicht dieselbe globale Druckunterdrückung funktionieren, die mit :=
funktioniert?
Laut Arun-Kommentar können wir nicht viel dagegen tun, dass Rs [
die Sichtbarkeit erzwingt. Die Lösung besteht darin, den Ausdruck data.table in invisible
zu verpacken.
Hilfreichster Kommentar
Nein, es liegt daran, dass R intern die Sichtbarkeit von
[
erzwingt, im Gegensatz zuwith()
. Siehe FAQ 2.22 .