2016-03-29 13 views
0

さまざまな患者データの統計を計算する関数を作成し、プロットを出力するだけで各患者の要約統計情報を含むデータフレームを生成します。複数のデータフレームをグローバル環境にエクスポートするユーザー定義関数

R内で関数をコピーして実行すると、出力が利用できます。しかし、私は今、別のRスクリプトから関数を呼び出しており、データフレームはもはや利用できません。

これを修正する方法はありますか?

例えば、

test=function(a){ 
    A=a 
    B=2*a 
    C=3*a 
    D=4*a 
    DF=data.frame(A,B,C,D) 
} 

a=c(1,2,3,4) 
test(a) 

これはDFを返さない、まだ私が入力した場合:

a=c(1,2,3,4) 
    A=a 
    B=2*a 
    C=3*a 
    D=4*a 
    DF=data.frame(A,B,C,D) 

を次に明確DFが返されます。 DFtest機能から利用できるようにこれを修正する簡単な方法はありますか?

+0

'test(a)'がDFを返さない場合は、関数内に 'return(DF)'のような行を追加してください。 (それがあなたが意味するものであるかどうかわからない) – Frank

+0

それは私が意味していたものではありませんが、私はそれがどのようにそのようになったかを見ることができます。私は 'DF'をコンソールに表示するのではなく地球環境に保存したいと思います。 – sym246

+0

'return(DF)'を関数内に追加し、 'DF = test(a)'のような関数を使うと、期待どおりに動くはずです。これは、関数がオブジェクトを副作用として作成するのではなく、Rで事を行う慣用的な方法です。あなたが実際に記述したいと思うなら、動作する可能性のある '<< - '代入演算子がありますが、通常はお勧めしません。関連:http://stackoverflow.com/q/9726705/1191259 – Frank

答えて

0

試してみてください。

test=function(a){ 
    A=a 
    B=2*a 
    C=3*a 
    D=4*a 
    DF=data.frame(A,B,C,D) 
} 

a=c(1,2,3,4) 
df<-test(a) 
print(df) 

新しい変数に関数の戻り値を割り当てることで、それは世界的な空間でアクセスできるようになりました。

関連する問題