すべての変数の型を取得する 質問する

すべての変数の型を取得する 質問する

Rでは、スクリプトの最後にグローバル変数のリストを取得し、それらを反復処理したいと思います。これが私のコードです。

#declare a few sample variables
a<-10
b<-"Hello world"
c<-data.frame()

#get all global variables in script and iterate over them
myGlobals<-objects()
for(i in myGlobals){
  print(typeof(i))     #prints 'character'
}

問題は、変数が文字変数ではないにもかかわらず、typeof(i)常に が返されることです。 for ループ内で変数の元の型を取得するにはどうすればよいでしょうか?characterac

ベストアンサー1

getによって返されるオブジェクトの文字名ではなく、値を取得するには を使用する必要がありますls

x <- 1L
typeof(ls())
[1] "character"
typeof(get(ls()))
[1] "integer"

あるいは、提示された問題に対しては、以下を使用することもできますeapply

eapply(.GlobalEnv,typeof)
$x
[1] "integer"

$a
[1] "double"

$b
[1] "character"

$c
[1] "list"

おすすめ記事