遍历全局环境中的对象

时间:2018-07-15 19:48:10

标签: r loops for-loop environment-variables global-variables

我对R很陌生,并尝试为一个简单的任务编写循环或简洁的代码:在R中的“全局环境”中检查所有当前对象的类。

class(mydata)
#[1] "data.frame"
class(mylist)
#[1] "list"
class(mymatrix)
#[1] "matrix"
...

以下代码有效,但是如果我有很多对象并且不想键入所有名称,该怎么办。

dflist <- list(mydata, mylist, mymatrix)
lapply(dflist,class)

我尝试了以下方法,但没有一个起作用。

 #1
for (i in ls()){
  class(i)
}

 #2
for (i in ls()){
  lapply(i,class)
}

有什么解决方案吗?谢谢。

3 个答案:

答案 0 :(得分:3)

您可以使用int来返回“对象的命名列表”。函数的第一个参数应该是对象名称的字符向量,这是mget返回的内容。

ls()

答案 1 :(得分:1)

尝试eapply

eapply(.GlobalEnv, class)

答案 2 :(得分:0)

使用sapply

sapply(ls()[sapply(ls(), function(x) any(class(get(x)) %in% c("data.frame", "matrix", "list")))], function(x) class(get(x)))