To czysta ciekawostka (więcej informacji na temat Reduce). Są lepsze sposoby na osiągnięcie tego, co robię i nie jestem nimi zainteresowany.używanie Reduce/do.call z ifelse
Niektóre osoby używają serii zagnieżdżonych poleceń ifelse
do przekodowywania/wyszukiwania czegoś. Może wygląda to tak:
set.seed(10); x <- sample(letters[1:10], 300, T)
ifelse(x=="a", 1,
ifelse(x=="b", 2,
ifelse(x=="c", 3,
ifelse(x=="d", 4, 5))))
Czy istnieje sposób, aby użyć do.call
lub Reduce
z ifelse
aby otrzymać pracę trochę bardziej elokwentnie?
Świetne pytanie. Oczywiście, w praktyce coś takiego jak 'sapply (x, funkcja (x) switch (x, a = 1, b = 2, c = 3, d = 4, 5' jest prawdopodobnie najczystsze –
@Richie Dzięki. ' d faktycznie podchodzimy do tego z tabelą wyszukiwania przy użyciu środowisk lub standardowego indeksowania z 'match' ale chciałem zobaczyć, czy' Reduce' lub 'do.call' może być zastosowany do tego problemu –
Jak w:' match (x, litery [1: 4], nomatch = 5) ' –