2

基本的な機能を取る

fun<-function(){
x<-c(1,2,3,4,5)
y<-c(1,2,3,4,5)

t<-x+y
return(t)

}

関数を実行した後、関数内で作成された変数にアクセスする方法はありますか。変数を指定するか、次のようになります。

fun$y

また

fun$t

または、現在のRセッション中に使用するために関数内に変数を保存するようにRに要求する方法はありますか(永続的に保存するつもりはありません)。別名:の線に沿って何か

fun<-function(){
x<-c(1,2,3,4,5)
y<-c(1,2,3,4,5)

t<-x+y
Y<-save y for latter use
T<-save T for latter use
return(t)

}

ありがとう!

4

2 に答える 2

5

スコープ外の変数を使用することはできません。

できることは、リストを使用して関数から複数の値を返すことです。

これが良いです。

于 2012-06-15T22:50:22.003 に答える
4

はいといいえ。

はい、関数のスコープ外の変数に割り当てを行うことは技術的に可能であり、他の場所からアクセスできます。通常、これは<<-、割り当てられている変数が見つからない場合にグローバル環境で割り当てる、またはassign環境を直接呼び出して指定することを使用して行われます。

だが...

いいえ、おそらくこれを行うべきではありません。Rは関数型言語です。つまり、その関数が副作用を引き起こさないように使用することを目的としています。この原則に違反しすぎると、デバッグが不可能ではないにしても、困難な深刻な問題が発生することは避けられません。

後で必要になる関数内に変数を作成する場合は、Benitoが説明しているように、それらすべてをリストで返すことがベストプラクティスと見なされます。

于 2012-06-15T23:14:18.603 に答える