2016-04-09 25 views

cevap

0

Bu çok kötü bir fikirdir, ancak aynı zamanda bir (daha doğrusu önemli) işlevi adıdır çünkü değişken c kullanmıyorum

f <- function(P) { 
    x <<- P + 1 
    y <<- x + 2 

} 

f(2) 

yapabilirsiniz. Ve gerçekten başarısız olur.

başka fonksiyonu (f2) ilk fonksiyonu (f1) tarafından döndürülen birden çok değer geçirmek gerekiyorsa

, ne yapmalıyım gibi bir şey:

f1 <- function(P) { 
    x <- P + 1 
    y <- x + 2 
    list(x=x, y=y) 
} 

f2 <- function(x, y) { 
    x + y 
} 

r <- f1(2) 
f2(r$x, r$y) 

veya

r <- f1(2) 
do.call(f2, r) 
+0

Teşekkür RobertH, bunu biliyorum ama başka çözümler var mı? – Tam

+0

Komut diziniz, değişkenlerin adı olarak x ve y ile çalışır, ancak adlar c ve d olduğunda Hata yaşıyorum: f (2) 'deki hata:' c 'için kilitli bağlamanın değerini değiştiremez. Nedenini anlamıyorum. – Tam

+0

Üzgünüz RobertH, R'ye çok az güveniyorum, ama neden kötü bir fikir? Tek bir işlevden daha çok bir değişkeni geri döndürmek için en iyi strateji hangisi olabilir? – Tam

İlgili konular