2017-04-05 41 views
1

我在R中編寫函數,我希望能夠從函數中調用不同的對象。我有一個我正在談論的問題的簡單例子(顯然不是真正的代碼)。提取R中函數中定義的對象

example <- function(a,b){ 
    c <- a+b 
    d <- a*b 
    e <- a/b 
    e 
} 

a <- 10 
b <- 20 

output <- example(a,b) 
str(output) 

output$c 

我的目標是讓最後一行顯示函數中定義的c的值。在這個代碼中,保存在輸出中的唯一東西是返回值e。

我試過改變當地和全球環境,使用< < - 等這並不能解決問題。任何幫助,將不勝感激。

回答

3

我們可以在list返回多個輸出,然後提取list元素

example <- function(a,b){ 
    c <- a+b 
    d <- a*b 
    e <- a/b 
    list(c=c, d= d, e = e) 
} 

a <- 10 
b <- 20 

output <- example(a,b)[['c']] 
output 
#[1] 30 

example(a,b)[['d']] 
#[1] 200 
+0

非常感謝你,非常完美。如果你能提供更多的見解,如果可以的話,我會感興趣的是如何設置函數的功能。 – House