Verknüpfen mehrerer Dateien beim Erstellen eines Pakets in R

8

Ich versuche ein Paket in R zu erstellen, in dem ich viele neue benutzerdefinierte Klassen erstellt habe. Jede Klasse befindet sich in einer anderen Datei. Die Klassen erben von einer Elternklasse und erben von anderen Klassen.

Während ich meine Codes benutze, rufe ich jeden von ihnen so an

%Vor%

Definition für einige der Methoden, die von der Enkelklasse in der Klasse Son definiert werden. Ich benutze package.skeleton (), um jedes von ihnen aufzurufen und ein Paket zu erstellen, und es scheint zu funktionieren. Aber wenn R CMD Check (und bei der Installation in R) ausgeführt wird, wird ein Fehler ausgegeben, da die Funktion versucht, die Dateien in alphabetischer Reihenfolge aufzurufen, sodass die Datei enkel.R vor son.R aufgerufen wird und angezeigt wird und ein Fehler angezeigt wird dass die Methoden nicht definiert wurden. Wenn ich die Namen in zgrandson.R ändere, nannte R diese Datei die letzte, und alles scheint gut zu funktionieren, aber das ist offensichtlich keine Lösung für das Problem.

Ich habe Tutorials zum Erstellen von Paketen gelesen, aber alle scheinen sich mit einfachen Fällen zu befassen, in denen es keine Vererbung / Aufrufe anderer Dateien in R gibt. Hoffe ich habe mich klar ausgedrückt.

    
Alex Joseph 07.09.2012, 05:52
quelle

1 Antwort

5

Soweit ich das verstanden habe, können Sie das Feld Collate in der Datei DESCRIPTION verwenden, um dies zu steuern.

Zitat aus dem Handbuch zum Schreiben von R-Erweiterungen :

  

Ein 'Sortieren' Feld kann verwendet werden, um die Kollationsreihenfolge für zu kontrollieren   die R-Code-Dateien in einem Paket, wenn diese für das Paket verarbeitet werden   Installation. Standardmäßig wird nach dem Gebietsschema "C" sortiert.   Wenn vorhanden, muss die Sortierspezifikation alle R-Codedateien in auflisten   das Paket (Berücksichtigung möglicher OS-spezifischer Unterverzeichnisse,   (siehe Paketunterverzeichnisse) als durch Leerzeichen getrennte Liste von Dateien   Pfade relativ zum R-Unterverzeichnis. Pfade mit Leerzeichen oder   Zitate müssen zitiert werden. Ein Betriebssystem-spezifisches Kollationsfeld   ('Collate.unix' oder 'Collate.windows') wird anstelle von verwendet   'Sortieren'.

Sie können also Folgendes angeben:

%Vor%

Oder benennen Sie die Dateien einfach so um, dass die lexikographische Sortierreihenfolge die korrekte Sortierreihenfolge ergibt, wie Sie in Ihrer Frage angegeben haben.

Aber auch diese Antwort von @DirkEddelbuettel zu einer ähnlichen Frage.

    
Andrie 07.09.2012, 06:08
quelle

Tags und Links