Ich habe eine Bibliothek namens Blotter in mein R-Skript aufgenommen, die einen Fehler enthält. Gibt es eine einfache Möglichkeit für mich, die Quelle zu bearbeiten, um das Problem zu beheben?So bearbeiten und debuggen Sie R-Bibliotheksquellen
Antwort
Schauen Sie sich die Funktionen trace
und browser
an, sie sind die grundlegenden Werkzeuge in R zum Debuggen. Sagen Sie bitte die Quelle der Funktion foo
, dann sagen
trace("foo",edit=TRUE)
öffnet sich die Quelle foo im Editor bearbeiten möchten, für Sie zu ändern. Dies dient jedoch zum interaktiven Debugging. Die Quelldateien in den Paketen werden nicht geändert. Sobald Sie den Fehler gefunden haben, müssen Sie die Paketquelldateien ändern, damit die Änderung dauerhaft ist.
Hallo! Ich habe ein Paket heruntergeladen und kenne die Funktion, die ich bearbeiten muss - ich kann sie nicht unter allen Dateien finden. Was ist der richtige Weg, dies zu tun? Könnten Sie mir in die richtige Richtung zeigen? – vagabond
Ein solches Merkmal ist in der Entwicklungsversion von R (16. Juli 2010) umgesetzt:
Eine neue Anlage zu r-devel hinzugefügt wurde von den Autoren der Pakete zum Experimentieren.
Die Idee besteht darin, modifizierten Code aus der Paketquelle in das laufende Paket ohne Neuinstallation einzufügen. So kann man in einer schnellen Schleife ändern, testen, ändern, etc.
Der Mechanismus dient zum Auswerten einiger Quellcode-Dateien und gibt ein Umgebungsobjekt zurück, das eine Momentaufnahme des Codes darstellt. Von dieser Umgebung können Funktionen und Methoden in die Umgebung des Pakets in der aktuellen Sitzung eingefügt werden. Die Einfügung verwendet den trace() Mechanismus, so dass der ursprüngliche Code wiederhergestellt werden kann.
Die einstufige Version ist:
insertSource("mySourceFile.R", package = "myPackage", functions = "foo")
diesen Beitrag sehen für weitere Details: Inserting and testing revised functions in a package
Ihre Frage Gibt es eine einfache Möglichkeit für mich, um die Quelle zu bearbeiten, um versuchen und debuggen das Problem? hat die offensichtliche Antwort: Verwenden Sie die Quelle, Luke!
blotter ist ein Paket auf R-Forge von dem Sie blotter sources here erhalten können. Das ist die übliche Art, auf Open Source zu schauen und es möglicherweise zusammen mit einem Bugfix zu unterstützen.
Ok, wie mache ich das? Normalerweise kann ich einfach "Bibliothek" nennen, was ich nicht mit den Quellen machen könnte. Ich habe die Quelle heruntergeladen, aber es gibt fast 40 Dateien. Leite ich "Quelle" einzeln auf jedem von ihnen, um sie in mein Skript zu bekommen? –
@Ben McCann Angenommen, es gibt keinen C- oder FORTRAN-Code, können Sie R-Dateien, 'source()' daraus extrahieren und von dort aus arbeiten (jedes Mal, wenn Sie die Datei ändern, müssen Sie sie kopieren oder in R kopieren). Sobald alles funktioniert, können Sie die Dateien zurück in die Paket-Binärdatei kopieren und sie erstellen. Ich habe eine schnelle Schritt-für-Schritt-R-Paket-Erstellung in einem Blog-Post hier beschrieben: http://danganothereerror.wordpress.com/2010/07/23/building-an-r-package-under-windows-without- cc-or-fortran-code/ –
- 1. So validieren und bearbeiten Sie einen Zellenwert
- 2. So debuggen Sie MSBuild Customtask
- 3. So bearbeiten Sie Daten onclick
- 4. Visual Studio: XAML-Datei beim Debuggen bearbeiten
- 5. So bearbeiten Sie docx mit nokogiri und rubyzip
- 6. So bearbeiten Sie Elemente in Laravel-Sammlung
- 7. So debuggen Sie SIGSEGV in JVM GCTaskThread
- 8. So debuggen Sie eine bereitgestellte Website
- 9. So bearbeiten Sie ein Formular mit CodeIgniter
- 10. So bearbeiten Sie globale Variable im Modul?
- 11. So bearbeiten Sie CSS-Klassen in Sitecore
- 12. So bearbeiten Sie eine Java-Map
- 13. So bearbeiten Sie Token in einer Zeichenfolge?
- 14. So bearbeiten Sie einen vorhandenen QR-Code
- 15. So bearbeiten Sie die Routingtabelle programmgesteuert
- 16. So bearbeiten Sie LoadableDetachableModel in Apache Wicket
- 17. So bearbeiten Sie einen Dateitext in Perl
- 18. So bearbeiten Sie CSS: BigCommerce Stencil
- 19. So bearbeiten Sie eine Liste komplexer Datenstrukturen
- 20. So bearbeiten Sie MP3-Datei Details (Delphi)
- 21. So bearbeiten Sie Indexseite in Magento
- 22. Können Sie die VS-Funktion deaktivieren, die separate Fensterpositionen für das Debuggen und Bearbeiten enthält?
- 23. Wie sehen/debuggen Sie: vor und nach in IE11?
- 24. So lösen und debuggen Sie MySQL Fehler: ER_LOCK_WAIT_TIMEOUT: Warte Wartezeit überschritten überschritten; versuchen Sie, Transaktion
- 25. So debuggen Cordova Plugin und Logging mit "android.util.log"
- 26. So beenden Sie Android-Anwendung beim Debuggen in Eclipse
- 27. So drucken oder debuggen Sie einen Wert in JSON-Datei
- 28. Debuggen Sie JavaScript so einfach wie das Debuggen einer C++/C#/Java-Anwendung?
- 29. So ändern Sie einen Listenwert beim Debuggen in IntelliJ
- 30. Wie öffnen und bearbeiten Sie TFS-Berichte?
Mögliches Duplikat von [r modifizieren und neu aufbauen] (https://stackoverflow.com/questions/34800331/r-modify-and-rebuild-package) – Scarabee