2012-03-21 15 views
1

可能性の重複:
Global variables in RRでグローバル変数を使用できませんか?

広告私が書いたファイルの先頭:

t.code = c() 

、関数のように:

calc <- function(){ 

    ..some stuff 

    t.code = append(t.code, value) 
} 

は、最後に私がt.codeコンテンツを印刷するが、私はNULL参照してくださいので、何かアドバイス、グローバルVARが使用されていないようですか?

+3

Rで変数を割り当てる慣用方法は、 '='ではなく '< - 'を使うことです。しかし、この場合は '<< - 'を探しています:http://stat.ethz.ch/R-manual/R-devel/library/base/html/assignOps.html文書から:演算子<<- and ->>原因割り当てられている変数の既存の定義を環境内で検索すること。そのような変数が見つかった場合(そのバインディングがロックされていない場合)、その値は再定義されます。そうでない場合、グローバル環境で代入が行われます。 –

+1

グローバル変数に割り当てると、私が代わりにあなたの関数 '返り(値)'持っており、別のステップで追加しますR.に新しいしている場合は特に非常にまれ必要ありません(または、良いアイデア)。 – Justin

答えて

4

グローバル代入演算子<<-(多少洗練されたassign)を使用する必要があります。

t.code <<- append(t.code,value) 

そして今、標準免責事項:プログラミングのスタイルは本当にRのために意図されていたイディオムの一種ではないよう<<-の使用は、多くの場合、推奨されません。

Rのscopingルールを慎重に読んだほうがよいでしょう。

+1

'<< - は、変数が検索された環境のいずれにも見つからない場合にのみ、グローバル環境で割り当てます。 –

関連する問題