0

外部データ ファイルからいくつかの変数を初期化したいと考えています。1 つの方法は、次のようなファイルを設定することですfoo.csv

var1,var2,var3
value1,value2,value3

次に発行します。

attach(read.csv('foo.csv'))

問題は、このようvar1, var2, var3に are が表示されずls()、何よりもすべてrm(all=ls())がクリーンアップされず、var1, var2, var3まだそこにあることです。

新しいオブジェクトのデフォルトの位置は「2」であるため、次の方法でこの変数が存在するワークスペースを削除できます。

detach(pos=2)

または単に

detach()

sincepos=2もデフォルトですdetach

しかし detach()、「あまりにも」強力で、デフォルトでロードされた R オブジェクトを削除できます。これは、多くのデータセットをアタッチした場合、それらを繰り返しdetach削除すると、デフォルトの R オブジェクトも削除される可能性があり、再起動する必要があることを意味します。加えて、シングルのシンプルさrm(all=ls())がなくなります。

解決策の 1 つvar1, var2, var3は、グローバル環境に直接接続することです。

その方法を知っていますか?

attach(read.csv('foo.csv'), pos=1)

警告を発行します (将来のエラー)。

attach(read.csv('foo.csv'), pos=-1)

効果がないようです。

4

3 に答える 3

1

「より安全」はattachどうですか?

attach<-function(x) {for(n in names(x)) assign(n,x[[n]],globalenv()); names(x)} 

「より安全」とは、添付された変数を表示しls()、何よりも単一の変数でそれらを削除できることを意味しますrm(list=ls())

マリップに影響をうけたサウンド

于 2013-10-15T00:15:00.387 に答える