Get type of all variables

r, typeof

Solution

You need to use `get` to obtain the value rather than the character name of the object as returned by `ls`:

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

Alternatively, for the problem as presented you might want to use `eapply`:

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

$a
[1] "double"

$b
[1] "character"

$c
[1] "list"

Problem

In R, I'd like to retrieve a list of global variables at the end of my script and iterate over them. Here is my code ``` #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' } ``` My problem is that `typeof(i)` always returns `character` even though variable `a` and `c` are not character variables. How can I get the original type of variable inside the for loop?

Original source