2017-06-14 16 views
-1

私は実際にどのようにR関数が動作するのか分かりません!それは私たちが返すことができるmatlabのように動作しませんまた、私たちの関数の多くのオブジェクトを呼び出しますか?R関数で複数の外部オブジェクトを定義する方法は?

私は複数の結果が必要な機能を書いていますが、私には1つしか返しません。 Rプログラマがこのような機能をどのように書くことができるのだろうか。例えば:私は内側に見たいときにも、私は理解できない

(ソートされたベクトルのインデックス:ソートベクトル、IX x)のソート

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

我々は2つの外部のオブジェクトを呼び出すことができます見ての通り事前

Nafis

エン

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

感謝を:私たちが持っている「平均」のような単純な関数のための例えばR.で書かれた機能

+1

最初の質問:これらは外部オブジェクトではありません。 's'は' list'オブジェクトです。 Rのチュートリアルを参照してください。あなたの2番目の質問:平均はS3ジェネリックです。バイトコードはコンパイラのバイトコードです。環境は基本パッケージの名前空間です。しかし、あなたは本当にRの入門コースを受けるべきです。いくつかの素晴らしい無料のものがあります。たとえばdatacamp.com –

+0

@Joris Meysのように。 'sort'は' list'を返します。この場合、2つのベクトル「x」と「ix」を含む。あなた自身の関数で同様の機能を望むなら、オブジェクトをリスト内の項目として保存してから、関数からリストを返すだけでよいでしょう。 –

+0

2番目の質問は、[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

関連する問題