Schleife einbauen

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

Moderatoren: EDi, jogo

NeueR

Schleife einbauen

Beitrag von NeueR »

Hallo R-Profis,

ich habe erst vor ein paar Tagen mit R begonnen, bin also noch absoluter neu.
Mit folgendem Code habe ich ein Diagramm als svg-Datei erstellt:

Code: Alles auswählen

d1 <- createVennObj(nSets = 2, sNames = c('A', 'B'))
d1 <- setVennRegion(d1, c("A"), 5)
d1 <- setVennRegion(d1, c("B"), 3)
d1 <- setVennRegion(d1, c("A", "B"), 1)
myV <- plotVenn(nVennObj = d1)
showSVG(nVennObj = myV)
Klappt auch alles super.
Jetzt würde ich es aber gerne automatisieren.
In einer csv Datei habe ich mehrere Daten für die ich gerne jeweils das Diagramm erstellen/speichern möchte.
Könnt ihr mir einen Tipp geben wie ich das am besten mache?

Die csv ist so aufgebaut (Auszug):

Code: Alles auswählen

 ,Region 1, Region 2, Region 3...
A, 5, 8, 10
B, 3, 5, 6
AB, 1,3,5
Vorab schon herzlichen Dank für die Tipps.
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Schleife einbauen

Beitrag von EDi »

Pack die paar Zeilen in eine Funktion. Argument wäre der Dateipfad, ausgabe das speichern des svg in einem anderen Dateipfad. Innerhalb der Funktion liest du ein und bearbeitest entsprechend.

Starte zuerst nur mit einem Pfad. Wenn das läuft, kannst du mit lapply() oder for() über viele Pfade laufen und diese jeweils der Funktion übergeben.
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.
NeueR

Re: Schleife einbauen

Beitrag von NeueR »

Hallo Edi,

vielen Dank für die Hilfe.
Kann ich irgendwo nachlesen wie ich so eine Funktion aufbaue bzw. wie lapply, for aufgebaut sein muss?
Bin leider totaler Neuling :oops:
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Schleife einbauen

Beitrag von jogo »

Hallo NeueR,

wie liest Du denn eine CSV-Datei ein, um ein Diagramm zu erzeugen?

Gruß, Jörg
NeueR

Re: Schleife einbauen

Beitrag von NeueR »

Hallo Jörg,

die CSV habe ich mit folgendem Code eingelesen:

Code: Alles auswählen

daten = read.csv("Pfad/TEST.csv", header = TRUE)
Meine Daten stehen also alle in der Variablen "daten".
Nun weis ich aber nicht wie ich die einzelnen Daten variabel ins Diagramm bekomme.

Aktuell schreibe ich noch die festen Werte rein:

Code: Alles auswählen

d1 <- setVennRegion(d1, c("A"), 5)
die "5" müsste dann irgendwie variabel sein.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Schleife einbauen

Beitrag von jogo »

Hallo NeueR,
NeueR hat geschrieben: Do Okt 11, 2018 2:58 pm die CSV habe ich mit folgendem Code eingelesen:

Code: Alles auswählen

daten = read.csv("Pfad/TEST.csv", header = TRUE)
Meine Daten stehen also alle in der Variablen "daten".
Nun weis ich aber nicht wie ich die einzelnen Daten variabel ins Diagramm bekomme.
Aktuell schreibe ich noch die festen Werte rein:

Code: Alles auswählen

d1 <- setVennRegion(d1, c("A"), 5)
die "5" müsste dann irgendwie variabel sein.
und wie entsteht das Objekt d1 :?:
Welche Werte statt der "5" sollen denn sonst dort stehen :?:
Und aus welchem Paket stammt die Funktion setVennRegion() :?:

Und bitte lies viewtopic.php?f=20&t=29

Gruß, Jörg
NeueR

Re: Schleife einbauen

Beitrag von NeueR »

Hallo Jörg,

das Paket heißt nVennR.
d1 wird durch folgenden Code erzeugt:

Code: Alles auswählen

d1 <- createVennObj(nSets = 2, sNames = c('A', 'B') 


die csv wird dann eingelesen:

Code: Alles auswählen

daten = read.csv("Pfad/TEST.csv", header = TRUE)
Aktuell wird das Diagramm noch mit festen Werten erzeugt:

Code: Alles auswählen

d1 <- setVennRegion(d1, c("A"), 10)
d1 <- setVennRegion(d1, c("B"), 8)
d1 <- setVennRegion(d1, c("A", "B"), 5)
Statt der "10", "8" und "5" sollen dann die Werte aus der csv eingesetzt werden.

(sorry ich merke wie unverständlich ich mich noch ausdrücke... aber wie gesagt, beschäftige mich erst seit ein paar Tagen mit R) :oops:
Zuletzt geändert von NeueR am Fr Okt 12, 2018 9:20 am, insgesamt 1-mal geändert.
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Schleife einbauen

Beitrag von jogo »

Hallo NeueR,

Du hast trotz meiner Bitte den Beitrag viewtopic.php?f=20&t=29 nicht gelesen. :(
NeueR hat geschrieben: Fr Okt 12, 2018 9:01 am das Paket heißt nVennR.
o.k., das Paket kenne ich nicht.
d1 wird durch folgenden Code erzeugt:

d1 <- createVennObj(nSets = 2, sNames = c('A', 'B')
also völlig unabhängig von dem Dataframe daten, den Du beim Einlesen

Code: Alles auswählen

daten = read.csv("Pfad/TEST.csv", header = TRUE)
erzeugst; ist das richtig :?:
Oder hast Du hier irgend etwas ausgelassen?

Bitte verstehe, dass wir nur schwerlich helfen können, wenn Du uns nicht mit einem Beispiel (mit Daten und Code) versorgst, das wir problemlos reproduzieren können. Bitte lies viewtopic.php?f=20&t=11 (alternativ auch: https://stackoverflow.com/questions/596 ... le-example )
Statt der "5" sollen die Werte in der csv-Datei eingesetzt werden.
Meinst Du bei der als Auszug angegebenen CSV-Datei die Werte
1, 3, 5, 6, 8, 10
:?:
(sorry ich merke wie unverständlich ich mich noch ausdrücke... aber wie gesagt, beschäftige mich erst seit ein paar Tagen mit R) :oops:
neben dem Nichtbeachten der beiden FAQ-Texte ist dies eine dritte Hürde, die die Hilfe erschwert bis verunmöglicht.

Gruß, Jörg
NeueR

Re: Schleife einbauen

Beitrag von NeueR »

Hallo Jörg,

habe meinen oberen Beitrag entsprechend angepasst.
Ich fasse alles im nächsten Beitrag nochmal zusammen:

Sorry.. ich merke ich muss noch seeeehr viel lernen.
NeueR

Re: Schleife einbauen

Beitrag von NeueR »

Ich erzeuge mit dem nVennR Paket ein Diagramm.
Darin sind aktuell feste Werte enthalten:

Code: Alles auswählen

d1 <- createVennObj(nSets = 2, sNames = c('A', 'B'))
d1 <- setVennRegion(d1, c("A"), 10)
d1 <- setVennRegion(d1, c("B"), 8)
d1 <- setVennRegion(d1, c("A", "B"), 5)
myV <- plotVenn(nVennObj = d1)
showSVG(nVennObj = myV)
Das klappt auch wunderbar.


Nun möchte ich das Diagramm aber variabel erzeugen bzw. mit Werten aus einer csv Datei.
Diese lese ich mit folgendem Code ein:

Code: Alles auswählen

daten = read.csv("Pfad/TEST.csv", header = TRUE)
in der Variablen "Daten" erhalten ich nun eine Datenmatrix.
Die Werte untereinander sollen nun statt der "10", "8", und "5" eingesetzt werden.
Zuletzt geändert von jogo am Fr Okt 12, 2018 9:42 am, insgesamt 1-mal geändert.
Grund: schließende Klammer fehlte
Antworten