Seite 1 von 2

Schleife einbauen

Verfasst: Do Okt 11, 2018 10:05 am
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.

Re: Schleife einbauen

Verfasst: Do Okt 11, 2018 10:18 am
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.

Re: Schleife einbauen

Verfasst: Do Okt 11, 2018 10:22 am
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:

Re: Schleife einbauen

Verfasst: Do Okt 11, 2018 2:25 pm
von jogo
Hallo NeueR,

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

Gruß, Jörg

Re: Schleife einbauen

Verfasst: Do Okt 11, 2018 2:58 pm
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.

Re: Schleife einbauen

Verfasst: Do Okt 11, 2018 7:48 pm
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

Re: Schleife einbauen

Verfasst: Fr Okt 12, 2018 9:01 am
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:

Re: Schleife einbauen

Verfasst: Fr Okt 12, 2018 9:17 am
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

Re: Schleife einbauen

Verfasst: Fr Okt 12, 2018 9:23 am
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.

Re: Schleife einbauen

Verfasst: Fr Okt 12, 2018 9:31 am
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.