Sandbox-ed tarzında bir R kodu öbeği çalıştırmaya çalışıyorum, gerekli tüm bağımlılıkları (işlevleri ve verileri) yeni bir ortama yükleyerek ve içindeki bir ifadeyi değerlendirerek ortamı. Ancak, ortamdaki diğer işlevleri çağıran işlevlerle ilgili sorun yaşıyorum. açıkça çevreyi takılarak Muhtemelen bir şey kaçırıyorumR - Ortamda iç içe geçmiş bir işlev değerlendirin
> attach(jobenv)
> eval(expr)
[1] 7
çalışır oysa f1
> eval(expr, envir=jobenv)
Error in f2(3) : could not find function "f1"
bulamıyorum f2
beri expr
üzerinde eval
başarısız kullanma
jobenv <- new.env(parent=globalenv())
assign("f1", function(x) x*2, envir=jobenv)
assign("f2", function(y) f1(y) + 1, envir=jobenv)
expr <- quote(f2(3))
: İşte basit bir örnek Açık, ama ben çalışır eval
çağrı herhangi bir permütasyon bulamadık. Çevreyi bağlamadan aynı etkiyi elde etmenin bir yolu var mı?
Sen, düzenleme yeni bir soru yapmalıdır. –
Öneriniz için teşekkürler, işte burada: [R - serileştirilmiş bir ortamda iç içe işlev çağrısını değerlendir] (http://stackoverflow.com/questions/17733323/r-evaluate-nested-function-call-in- inherits = TRUE' için –