2017-06-14 90 views
-1

我真的不知道R函數是如何工作的!它不能像matlab那樣工作,我們可以返回並調用函數的許多對象?如何在R函數中定義多個外部對象?

我正在寫一個函數,我需要有多個結果,但它只返回一個結果。 我不知道R程序員如何編寫這樣的函數。例如:排序

s<-sort(c(10:3, 2:12), method = "shell", index.return = TRUE) 
s$x 
s$ix 

正如我們看到的,我們可以調用兩個外部對象(X:分類矢量,九:排序向量的指數)

此外,當我想看看裏面我不明白在R寫入功能,例如用於像一個簡單的功能「的意思是」我們有:

> mean 
function (x, ...) 
UseMethod("mean") 
<bytecode: 0x0000000017c57d28> 
<environment: namespace:base> 

感謝恩提前

納菲斯

+1

你的第一個問題:那些不是外部對象。 's'是一個'list'對象。請參閱R教程。你的第二個問題:意思是S3通用。字節碼是編譯器的字節碼。環境是基本包的名稱空間。但是在你走之前,你真的應該得到關於R的入門課程。有一些偉大的免費的,例如在datacamp.com –

+0

就像@Joris Meys說。 'sort'返回一個'list'。在這種情況下包含兩個向量'x'和'ix'。如果您希望自己的功能具有類似的功能,則只需將對象保存爲列表中的項目,然後從函數中返回列表。 –

+0

你的第二個問題是[this]的重複(https://stackoverflow.com/q/19226816/324364)。 – joran

回答

1

下面是一個簡單函數的示例,顯示如何返回包含多個項目的列表。

# Create the function 
my.function <- function(){ 

    # Create some vectors 
    obj1 <- c("Character", "Vector", "One") 
    obj2 <- c("Character", "Vector", "Two") 
    obj3 <- c("Character", "Vector", "Three") 

    # Create empty list 
    my.list <- list() 

    # Assign objects to list 
    my.list$o1 <- obj1 
    my.list$o2 <- obj2 
    my.list$o3 <- obj3 

    # Return the list 
    return(my.list) 
} 

# Call the function 
list.from.function <- my.function() 

# Inspect a specific item 
list.from.function$o1 
+0

是的!非常感謝 – user1481752

相關問題