Ich bin ziemlich vertraut mit Rs Standard-ifelse-Anweisung und wie verschachtelte ifelse-Anweisungen zu erstellen. Ich möchte jedoch eine "bessere" Version erstellen, so dass ich ifelse nicht so oft kopieren/einfügen muss.R - So erstellen Sie benutzerdefinierte Ifelse-Funktion, die wiederholt
Nehmen Sie dieses verschachtelte ifelse Anweisung zum Beispiel:
df <- data.frame(b = 1:5)
df$a <- ifelse(df$b == 1,1,
ifelse(df$b == 2,2,
ifelse(df$b == 3,3,4)))
Statt dessen, was ich möchte eine Funktion zu tun ist, erstellen wie ich so nennen könnte:
df$a <- myFunction(df$b == 1,1,
df$b == 2,2,
df$b == 3,3,4)
die Funktion Ich möchte in der Lage zu sein, wie viele Argumente ich eingegeben habe, und so zu wissen, wie viele ifelse-Anweisungen enthalten und dann die Argumente in die richtige Position stecken, bis zu so viele ich will.
Es gibt immer noch einige Wiederholungen, aber beim Erstellen längerer verschachtelter ifelse-Anweisungen wäre es nett, diesen Teil des Codes nicht wiederholen zu müssen, und dann versuchen, die Endung von parens zu verfolgen.
In einigen Fällen' Schalter' sein könnte, was Sie suchen. – lmo
Oder erstellen Sie eine Symbol-Tabelle von Hand (vs 'switch') und verwenden Sie diese für den Abgleich –
Vielleicht' ifelse (df $ b> 4, 4, df $ b) '? Oder siehe 'cut()' Funktion. – zx8754