Identifizierung der Variablen mit dem höchsten Wert

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

Moderatoren: EDi, jogo

jogo
Beiträge: 935
Registriert: Fr Okt 07, 2016 8:25 am

Re: Identifizierung der Variablen mit dem höchsten Wert

Beitrag von jogo » Do Okt 04, 2018 5:35 pm

hm, ich sehe es momentan nicht, woran es liegt.
Also werden wir wohl das with() auflösen und qualifizierte Namen verwenden:

Code: Alles auswählen

Tabelle.OCAI$POfitvor <- NA
i <- Tabelle.OCAI$domCul == "A"; Tabelle.OCAI$POfitvor[i] <- Tabelle.OCAI$OCAIA[i]
i <- Tabelle.OCAI$domCul == "B"; Tabelle.OCAI$POfitvor[i] <- Tabelle.OCAI$OCAIB[i]
i <- Tabelle.OCAI$domCul == "C"; Tabelle.OCAI$POfitvor[i] <- Tabelle.OCAI$OCAIC[i]
i <- Tabelle.OCAI$domCul == "D"; Tabelle.OCAI$POfitvor[i] <- Tabelle.OCAI$OCAID[i]
rm(i)
Gruß, Jörg
p.s.:
aber Deinen Workspace hast Du Dir trotzdem schon gut zugekachelt. :?

NeugierundOrga
Beiträge: 16
Registriert: Mo Aug 27, 2018 11:16 am

Re: Identifizierung der Variablen mit dem höchsten Wert

Beitrag von NeugierundOrga » Fr Okt 05, 2018 12:03 pm

Hallo Jörg,

super, das hat funktioniert!

Ich habe dann den zweiten Teil wie folgt ausgeführt:

Code: Alles auswählen

Tabelle.OCAI$POfitstr<- NA

i <- Tabelle.OCAI$domCul == "A"; Tabelle.OCAI$POfitstr[i] <- (Tabelle.OCAI$idOCAIA[i]-Tabelle.OCAI$OCAIA[i])
i <- Tabelle.OCAI$domCul == "B"; Tabelle.OCAI$POfitstr[i] <- (Tabelle.OCAI$idOCAIB[i]-Tabelle.OCAI$OCAIB[i])
i <- Tabelle.OCAI$domCul == "C"; Tabelle.OCAI$POfitstr[i] <- (Tabelle.OCAI$idOCAIC[i]-Tabelle.OCAI$OCAIC[i])
i <- Tabelle.OCAI$domCul == "D"; Tabelle.OCAI$POfitstr[i] <- (Tabelle.OCAI$idOCAID[i]-Tabelle.OCAI$OCAID[i])
rm(i)
Alles ist schick und die einzelnen Zahlen stimmen diesmal auch! :-)

Dabei ist mir aufgefallen, dass ich jede Zeile einzeln als Rechenfunktion ausführen kann und die Werte jeweils für die entsprechend ausgewählten Zeilen in die Tabelle geschrieben werden. Wofür brauche ich dann am Ende noch rm(i)?

Das nur als Bonusfragen, aber ich bin jetzt superglücklich, dass ich endlich weitermachen kann!

Tausend Dank!
Karen

jogo
Beiträge: 935
Registriert: Fr Okt 07, 2016 8:25 am

Re: Identifizierung der Variablen mit dem höchsten Wert

Beitrag von jogo » Fr Okt 05, 2018 12:08 pm

Hallo Karen,
NeugierundOrga hat geschrieben:
Fr Okt 05, 2018 12:03 pm
Alles ist schick und die einzelnen Zahlen stimmen diesmal auch! :-)
prima.
Dabei ist mir aufgefallen, dass ich jede Zeile einzeln als Rechenfunktion ausführen kann und die Werte jeweils für die entsprechend ausgewählten Zeilen in die Tabelle geschrieben werden. Wofür brauche ich dann am Ende noch rm(i)?
Um den Workspace nicht zuzuschruzen. (lange Antwort: das i enthält am Ende den logical Index für den D-Fall. Dieser Fall ist gegenüber den anderen drei nichts besonderes, oder? Damit verliert das i seine Bedeutung: Zeit zum Aufräumen, damit man sich nicht zwanzig Codezeilen später wundert: wozu war dieses i gut?)
Wenn das Codestück allerdings innerhalb einer Funktion ist, endet die Sichtbarkeit von i automatisch und man hätte gut auf rm(i) verzichten können.

Gruß, Jörg

NeugierundOrga
Beiträge: 16
Registriert: Mo Aug 27, 2018 11:16 am

Re: Identifizierung der Variablen mit dem höchsten Wert

Beitrag von NeugierundOrga » Fr Okt 05, 2018 12:47 pm

Hallo Jörg,
Dabei ist mir aufgefallen, dass ich jede Zeile einzeln als Rechenfunktion ausführen kann und die Werte jeweils für die entsprechend ausgewählten Zeilen in die Tabelle geschrieben werden. Wofür brauche ich dann am Ende noch rm(i)?
Um den Workspace nicht zuzuschruzen. (lange Antwort: das i enthält am Ende den logical Index für den D-Fall. Dieser Fall ist gegenüber den anderen drei nichts besonderes, oder? Damit verliert das i seine Bedeutung: Zeit zum Aufräumen, damit man sich nicht zwanzig Codezeilen später wundert: wozu war dieses i gut?)
Wenn das Codestück allerdings innerhalb einer Funktion ist, endet die Sichtbarkeit von i automatisch und man hätte gut auf rm(i) verzichten können.
Wieder was gelernt!
Nochmal Danke!
Karen

jogo
Beiträge: 935
Registriert: Fr Okt 07, 2016 8:25 am

Re: Identifizierung der Variablen mit dem höchsten Wert

Beitrag von jogo » Sa Okt 06, 2018 12:15 pm

Hallo Karen,

für das Lernen habe ich hier noch etwas zusammen geschrieben. Im Englischen wird der Begriff scoping verwendet, im Deutschen heißt es Gültigkeitsbereich eines Bezeichners (einer Variablen bzw. eines Objektes).

Code: Alles auswählen

### Test scoping, bitte in einer frischen R-Session ausführen

i  ## Fehler, weil i noch nicht existiert

f <- function() { i=5 } ### eine Funktionsdefinition, innen wird i verwendet

i ## immer noch Fehler

f()  ## Funktionsaufruf liefert als Ergebniswert den Wert des als letztes berechneten Ausdruck inerhalb der Funktion

i ## trotzdem ist im Workspace i immer noch nicht definiert

i <- "hallo" ## so, jetzt ist i definiert

f() ## nochmal Funktionsaufruf, welchen Wert hat danach i ?

i ## das i im Workspace ist gut vor allem geschützt, was in der Funktion passiert

### wenn man etwas Anderes möchte, dann so:
i <- f()

i ## klar, wegen der vorherigen Zuweisung
R bietet im bezüglich der Gültigkeit der Bezeichner größtmögliche Sicherheit für das Programmieren - natürlich nur, wenn man nicht irgendwelche Konstrukte einsetzt, die diese Sicherheit untergraben.

Gruß, Jörg

NeugierundOrga
Beiträge: 16
Registriert: Mo Aug 27, 2018 11:16 am

Re: Identifizierung der Variablen mit dem höchsten Wert

Beitrag von NeugierundOrga » Di Okt 09, 2018 10:56 am

Hallo Jörg,

vielen Dank für diese Zusammenfassung und Deine ganze Hilfe!

Karen

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast