Problem mit sourcing script

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

Moderatoren: EDi, jogo

Antworten
Henri
Beiträge: 8
Registriert: Do Aug 22, 2019 11:09 am

Problem mit sourcing script

Beitrag von Henri »

Hallo Leute,

ich bin ganz neue in R, aber habe ich ein bisschen Ahnung von Programmierung.
es geht darum ich habe ein echtes Problem mit sourcing script, ich habe Funktion
die ich in R geschrieben habe und möchte ich es in editor aufrufen und ausführen.
und bist jetzt fällt mir auf das ich ein Problem mit dem "path" oder Pfad habe,
ich benutze Mac und habe ich das Gefühl fällt es bei Mac ein bisschen kompliziert
könnte jemandem mir erklären, wie das geht ?
wenn sie screenshot oder sonstige benötigen, können Sie mir einfach schreiben.
Ich habe die drei Funktionen und zwar complete(), core() und Pollutantmean() die sollte
csv- Dateien bearbeiten, die cv-Dateien befinden sich in einem Ordner auf dem Schreibtisch (Deskstop bei Windows)
wenn ich versuche etwas auszuführen wie

Code: Alles auswählen

pollutantmean("specdata", "sulfate", 1:10)
bekomme ich den folgende Fehler auf screenshot.

Code: Alles auswählen

> pollutantmean("specdata", "sulfate", 1:10)
Fehler in pollutantmean("specdata", "sulfate", 1:10) : 
  konnte Funktion "pollutantmean" nicht finden
Danke für eure Hilfe
Dateianhänge
Bildschirmfoto 2019-08-22 um 11.22.15.png
ruedi_br
Beiträge: 159
Registriert: Do Mär 01, 2018 3:53 pm

Re: Problem mit sourcing script

Beitrag von ruedi_br »

Nachdem der Quelltext im Screendump erst ab Zeile 20 zu lesen ist, wird das ohne das komplette Script nicht leicht zu beantworten sein.
Grüße
Ruedi

PS: und den dann in Codetags setzen :)
fortune(111)
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Problem mit sourcing script

Beitrag von jogo »

Hallo Henri,

willkommen im Forum!
Wenn die Funktion (eine Funktion ist auch nur ein Objekt in R) in der aktuellen Umgebung nicht bekannt ist, muss sie definiert werden.
Da die Definition in einer eigenen Skriptdatei liegt, kann sie Funktion source(...) verwendet werden, also:

Code: Alles auswählen

source("pollutantmean.R")  ### Funktionsdefinition laden
pollutantmean("specdata", "sulfate", 1:10) ### Funktion verwenden
Gruß, Jörg
Henri
Beiträge: 8
Registriert: Do Aug 22, 2019 11:09 am

Re: Problem mit sourcing script

Beitrag von Henri »

Hallo Jörg,

danke für deine Schnelle Antwort, jetzt sagt er mir das folgende

Code: Alles auswählen

> source("pollutantmean.R") 
Fehler in file(filename, "r", encoding = encoding) : 
  kann Verbindung nicht öffnen
Zusätzlich: Warnmeldung:
In file(filename, "r", encoding = encoding) :
  kann Datei 'pollutantmean.R' nicht öffnen: No such file or directory
> pollutantmean("specdata", "sulfate", 1:10)
Fehler in pollutantmean("specdata", "sulfate", 1:10) : 
  konnte Funktion "pollutantmean" nicht finden
bigben
Beiträge: 2780
Registriert: Mi Okt 12, 2016 9:09 am

Re: Problem mit sourcing script

Beitrag von bigben »

"No such file or directory" sagt doch alles. An der erwarteten Stelle wird eine solche Datei nicht gefunden. Du kannst erstmal mit getwd() herausfinden, wo im Pfad R nach der Datei sucht. Dann kannst Du mit file.choose() herausfinden, wie der richtige Pfad zu Datei lautet. Nur der Vollständigkeit halber: Das Working directory setzen geht mit setwd()

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Problem mit sourcing script

Beitrag von jogo »

Hallo Henri,

Du musst das Arbeitsverzeichnis setzen:

Code: Alles auswählen

setwd("~/Desktop/Ordner")
... schau, ob die Dateien dort sind:

Code: Alles auswählen

dir()
Gruß, Jörg
Henri
Beiträge: 8
Registriert: Do Aug 22, 2019 11:09 am

Re: Problem mit sourcing script

Beitrag von Henri »

Hi Bernhard,

habe ich schon die Methode getwd() verwenden gibt er mir es zurück

Code: Alles auswählen

"/Users/myname"
aber habe ich die Scripts hier gespeichert

Code: Alles auswählen

/Users/myname/Desktop/apstone
und die csv-Dateien sind hier

Code: Alles auswählen

/Users/myname/Desktop/apstone/specdata
Henri
Beiträge: 8
Registriert: Do Aug 22, 2019 11:09 am

Re: Problem mit sourcing script

Beitrag von Henri »

@Jörg,

wenn ich es eingebe und ausführe sieht es so aus

Code: Alles auswählen

> setwd("/Users/myname/Desktop/apstone")
> dir
function (path = ".", pattern = NULL, all.files = FALSE, full.names = FALSE, 
    recursive = FALSE, ignore.case = FALSE, include.dirs = FALSE, 
    no.. = FALSE) 
.Internal(list.files(path, pattern, all.files, full.names, recursive, 
    ignore.case, include.dirs, no..))
<bytecode: 0x7faa78453c78>
<environment: namespace:base>
>  
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Problem mit sourcing script

Beitrag von jogo »

Hallo Henri,

Du solltest auch nicht eingeben, sondern

Code: Alles auswählen

dir()
:!:

Gruß, Jörg
Antworten