R en ifelse
inanılmaz kullanışlı olsa da, belirli bir eksiklik var Aranan: yes
ve no
tüm unsurları değerlendirilir çağrı ifelse(test, yes, no)
yılında, hatta bu atılır olacağını.daha verimli ifelse()
, integrate
, uniroot
, optim
ya da her neyse beslenen edilecektir bir işlevde söylüyorlar. f
ve g
belki daha iç içe ifelse
's içeren, keyfi olarak karmaşık veya yavaş fonksiyonları olmak üzere Örneğin, bir
ifelse(test, f(x, y, z), g(a, b, c))
olabilir.
ifelse
için yedek yazılı olan herhangi biri, yalnızca yes
/no
öğelerini değerlendirecek olan bir yazı yazdı mı? Temel olarak,
hatları boyunca bir şey açık bir döngünün bulanıklığı/etkisizliği boyunca. Bu, R'nin içlerine girmeden bile mümkün mü?
Sanırım açık döngüyü * kullanabiliyordum, ancak eski bir programcının Fortran'ı herhangi bir dilde yazabileceğini söyleyen eskileri takip ettiğimi hissediyordum .... –
nasıl kullanılır? daha sonra ifelse() her eleman için değerlendirilir ve aynı şekilde 'evet' ve 'hayır sadece ilgili unsurlar için değerlendirilir, eğer benim uygulamamın yanlış olduğu anlaşılmasaydı, ama eminim ki bu benim için çalışmış olduğundan eminim – nzcoops
I if() - else ile 'mapply' kullanmayı denedi ve bu, vectorized' ifelse'den 10 kat daha yavaştı! –