5
İşlevselleri github'dan okuyordum. Sayfadaki bir öneri, bir işlev listesiyle çalışıyorsa call_function
kullanmaktı. Çıktı olarak gönderilmişişlevsel programlama R
call_fun <- function(f, ...) f(...)
f <- list(sum, mean, median, sd)
lapply(f, call_fun, x = runif(1e3))
: Burada sayfadan kodudur Ancak
# [[1]]
# [1] 498
#
# [[2]]
# [1] 0.498
#
# [[3]]
# [1] 0.49
#
# [[4]]
# [1] 0.29
, yukarıdaki sonuçlar çoğaltmak mümkün değildi. Hata var:
Burada bir şey mi eksik?
sd = 2
call_fun <- function(f, ...) f(...)
f <- list(sum, mean, median, sd)
lapply(f, call_fun, x = runif(1e3))
#Error in FUN(X[[4L]], ...) : could not find function "f"
oturumunuzu yeniden başlatın veya
rm(sd)
yapmak
:
Teşekkürler @eddi. Sorunun gelecekteki kullanıcılar için yararlı olup olmayacağından emin değilim. Önemsiz görünüyorsa silmek için mutlu olacak. – Metrics
Eminim onu silebilirsin. Zaten cevabın (mayın) ve cevabın üzerinde (benim ve anothers) yükseltmeler var. Sorunu çözecek programlı bir yol varsa merak ediyorum. Call_fun <- function (f, ...) match.fun (f) (...) 'yi denedim ve basit durumda başarılı olur ve sd == 5' ile aynı şekilde başarısız olur. –
@Metrics 'sd' ile daha önce bu aynı soruna girdim (sadece iki harfli değişken isimler var), bu yüzden muhtemelen bir hatadan çok nadir değildir (bu sorunun arama motoru) – eddi