0

データ行列がある場合

mI <- c(1:4, 2, 6, 9)
mJ <- c(4:1, 5, 0, 2)

および次の単純な回帰関数

fLM <- function(mX, mY){
       lmXY <- lm(mY~mX)
       summary(lmXY)
       return(lmXY)
}

コマンド summary(lmXY) を使用して、関数内の回帰の結果を出力したいのは明らかです。ただし、LM <- fLM(mI, mJ) を使用すると、このコマンドが関数に含まれていても、要約出力は出力されません。奇妙なことに (少なくとも私にとっては) 関数 fLM で return(lmXY) コマンドを削除すると、summary(lmXY) が出力されます。誰かがなぜこれが起こるのか説明できますか?

を使用して関数でブルームバーグ接続を確立すると、同様のことが起こります

conn <- blpConnect()

関数の後半のいくつかのコマンドで、blpDisconnect(conn) を使用して Bloomberg から切断します。次のコマンドは、取得したデータを返します。ただし、blpConnect() は完全に機能しますが、blpDisconnect(conn) コマンドはスキップされます。データの返却は完璧に実行されます。ブルームバーグとの接続を手動で確立してから、切断機能を使用しても問題はありません。しかし、どういうわけか return を含む関数には問題があります (これが原因かどうかはわかりませんが、単なる観察です)。誰も理由を知っていますか?

BB 機能のグローバル コード:

fnBB <- function(){
        conn <- blpConnect()
        ...
        blpDisconnect(conn)
        return(mData)
} 

よろしくお願いします。

4

2 に答える 2