Seite 1 von 1
ifelse()
Verfasst: Fr Aug 25, 2017 9:03 am
von forenthomas
Hallo,
ich mache gerade die ersten Schritte in der Programmierung und bin über
Code: Alles auswählen
> ifelse(x > 0, log(x), NA)
[1] NA NA NA 0.0000000 0.6931472
Warning message:
In log(x) : NaNs produced
gestolpert. Ich frage mich, wie es zu der Warnmeldung kommt. Eigentlich dürfe in der if-Anweisung für negative x-Werte log(x) doch nicht ausgeführt werden, oder?
Gruß, Thomas
Re: ifelse()
Verfasst: Fr Aug 25, 2017 9:11 am
von jogo
Hallo Thomas,
willkommen im Forum!
Das liegt wohl daran, dass R vektoriell arbeitet:
log(x) wird für den gesamten Vektor
x berechnet. Dabei entstehen die NaN-Einträge (Not a Number).
Die
ifelse()-Funktion führt aber dazu, dass an diesen Stellen NA eingetragen wird.
Bitte beachte, dass
ifelse() kein Konstrukt zur Programmsteuerung ist, sondern
ifelse() ist eine Funktion, die drei Argumente verarbeitet.
Gruß, Jörg
Re: ifelse()
Verfasst: Fr Aug 25, 2017 9:12 am
von student
Hallo Thomas,
schau Dir mal die Hilfe zur Funktion an. Dort ist ein ähnliches Konstrukt beschrieben!
Re: ifelse()
Verfasst: Fr Aug 25, 2017 9:50 am
von forenthomas
Hallo Jörg,
jogo hat geschrieben: Fr Aug 25, 2017 9:11 am
Bitte beachte, dass
ifelse() kein Konstrukt zur Programmsteuerung ist, sondern
ifelse() ist eine Funktion, die drei Argumente verarbeitet.
Cool, das macht es logisch. Danke!
Gruß, Thomas