der Kürze halber EDITED Zuordnung:einen Druckfehler bekommen, während Vektor data.table Spalte
Ich habe ein Paar vorbelegt data.tables mit ein paar Zehntausende von Zeilen jeder einzelnen und eine Handvoll von Spalten. Ich versuche, eine Spalte aus einer Tabelle zu aggregieren und das Ergebnis der anderen Tabelle zuzuweisen.
Das Problem ist, dass ich die folgende Fehlermeldung auf Zuweisung bin immer:
Error in SYS[[length(SYS) - 3L]][[1L]] == "knit_print.default" :
comparison (1) is possible only for atomic and list types
Der Code selbst nicht abstürzt, aber die Fehlermeldung erfolgt grundsätzlich an die Stelle der Datentabelle, wenn I/Druckansicht der Rückgabewert. Oder es scheint so zu sein.
Googeln findet dafür absolut nichts außer für den Github-Sourcecode von data.table. Also habe ich es mir angeschaut und das einzige, was ähnlich ist, ist um die Zeilen 45-50ish herum und scheint die Druckausgabe während der In-Place-Zuweisung zu unterdrücken/zu verzögern. Es gibt keine andere Dokumentation, die ich über diesen Fehler finden könnte.
Ich konnte auch noch kein MRE erstellen (immer noch versuchen), wie das Zerlegen des Codes endet mit Arbeitsbeispielen, so klar ich vermisse das Ding, das es bricht. Ich vermute, wenn ich es finde, werde ich meine eigene Frage beantworten können.
Ich poste das, weil ich hoffe, dass jemand hier vielleicht weiß, was der Fehler bedeutet, was mir im Gegenzug helfen würde, das Problem in meinem Code zu lokalisieren und es entweder zu reparieren oder ein MRE für einen Fehlerbericht zu erstellen .
Stochern Ich habe festgestellt, dass Zuordnungen im Quellcode fehlschlagen (für nur eine Tabelle, keine Probleme mit der anderen), aber die Ausführung unterbrechen und kopieren die gleichen Zuordnungen in die Konsole funktioniert gut. Es scheint also kein Problem mit meiner Syntax oder meinen Daten zu sein.
UPDATE: Minimal Reproduzierbare Beispiel
Nach 3 Tagen geortet ich das Problem.
alloc_out <- function(annot = c("a", "b")) {
Genes <- data.table("parent" = annot, flag = NA)
ro <- structure(list("Genes" = Genes), class="dtu")
ro$Genes[, flag := TRUE] # This causes the error message
# when executed from source,
# but works in console.
return(ro)
}
R-Version: 3.2.4 in RStudio auf OSX El Capitan // data.table Version: 1.9.6
Hinzufügen des Knitr-Tags, weil knit_print.default von dort kommt. – Frank
Entschuldigung, ich denke du brauchst eine MRE und wahrscheinlich auch eine kürzere Beschreibung, was schief läuft. Der (zu lange) Code, den Sie hinzugefügt haben, funktioniert gut für mich, z. B. mit 'alloc_out (list (parent_id = 1, target_id = 2))'. Sobald Sie ein MRE erhalten haben, möchten Sie es vielleicht in einem Bug/Issue-Tracker für data.table oder knitr veröffentlichen, wenn es hier keine Zugkraft hat. – Frank
@Frank Verwaltet, um es einzugrenzen. – cymon