Meta Skript

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
diobi

Meta Skript

Beitrag von diobi »

Hallo,

Mein zweites Anliegen bezieht sich auf R-Scripts. Also, ich habe eine Aufgabe auf mehrere Skripten zerlegt. Ich möchte auch, dass dies so bleibt. Ich möchte also nicht alles in einer Script haben. Kann ich in R eine Art "Meta-Skript" schreiben, die dann die einzelnen Skripten hintereinander ausführt?
Z.B.
C:\....\Skript1
C:\....\Skript2 usw.

Auch dafür vielen Dank,
Diobi
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Meta Skript

Beitrag von bigben »

Ja, das dazu nötige Kommando heißt source(). Dein Metaskript kann einfach eine Reihe von source-Aufrufen enthalten. Für jede Datei einen.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
diobi

Re: Meta Skript

Beitrag von diobi »

Das habe ich mir jetzt angesehen. Was ich aber nicht verstehe ist, welche Zusatzbefehle müssen mindestens berücksichtigt werden? Einfach nur source (file) zu berücksichtigen klappt nicht.
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Meta Skript

Beitrag von Athomas »

Das ist aber jetzt eine Frage, die man selbst prima durch Ausprobieren beantworten kann :D !
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Meta Skript

Beitrag von EDi »

Einfach nur source (file) zu berücksichtigen klappt nicht.
Was klappt denn da nicht?
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Meta Skript

Beitrag von bigben »

Ich unterstelle Windows als Betriebssystem und vermute mal, dass Du die Backslashes im Filenamen nicht escapet hast. Gib man auf der R Console folgendes ein:

Code: Alles auswählen

choose.files()
Dann erscheint ein Auswahldialog in dem Du so eine Sourcedatei doppelklickst. Dann gibt R Dir einen String mit dem vollständigen Pfad aus. Könnte beispielsweise so aussehen:

Code: Alles auswählen

"C:\\Users\\DonaldDuck\\Documents\\R-Files\\Dateneinlesen.R"
Wenn das nicht hilft, dann wäre eine echte Fehlerbeschreibung hilfreich. Beispiele für mögliche Fehlerbeschreibungen erhält man so:

Code: Alles auswählen

install.packages("fortunes")
library("fortunes")
fortune(324)
HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
diobi

Re: Meta Skript

Beitrag von diobi »

Hallo Bernhard,

Auch daas scheint zu funktionieren. Mit
source("F:\\xxx\\yyy\\zzz.R") kann ich nun die einzelnen Skripte aufrufen. Vielleicht lag es einfach an meiner falschen Schreibweise.

Allerdings bricht der Prozess ab, sobald ein Fehler im ursprünglichen Skript auftaucht. Kann man dies verhindern, so dass der Prozess diesen Fehler ignoriert und einfach weiter macht, damit ich alle Fehler in einem Zug korrigieren kann?

Grüße
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Meta Skript

Beitrag von EDi »

Entweder im Script viele try() einbauen oder (ganz hässlich) ein kombi aus parse (), for, try() und eval. Das ist so hässlich, das ich das hier nicht posten möchte.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Meta Skript

Beitrag von bigben »

Fehler haben die unangenehme Eigenschaft, sich im weiteren fortzupflanzen. Es macht daher viel Sinn, erst den einen Fehler zu korrigieren und dann den Code weiter laufen zu lassen. Bei einer kompilierten Sprache mag ein anderes Vorgehen sinnvoller sein, in einer interpretierten nicht.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Antworten