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
が返されます。 DF
がtest
機能から利用できるようにこれを修正する簡単な方法はありますか?
'test(a)'がDFを返さない場合は、関数内に 'return(DF)'のような行を追加してください。 (それがあなたが意味するものであるかどうかわからない) – Frank
それは私が意味していたものではありませんが、私はそれがどのようにそのようになったかを見ることができます。私は 'DF'をコンソールに表示するのではなく地球環境に保存したいと思います。 – sym246
'return(DF)'を関数内に追加し、 'DF = test(a)'のような関数を使うと、期待どおりに動くはずです。これは、関数がオブジェクトを副作用として作成するのではなく、Rで事を行う慣用的な方法です。あなたが実際に記述したいと思うなら、動作する可能性のある '<< - '代入演算子がありますが、通常はお勧めしません。関連:http://stackoverflow.com/q/9726705/1191259 – Frank