1. ホーム
  2. r

[解決済み] 全変数の型取得

2022-07-24 23:21:07

質問

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) は常に character を返しますが、変数 ac は文字変数ではありません。forループ内で元の型の変数を取得するにはどうしたらよいでしょうか。

どのように解決するのですか?

この場合 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"