我对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)
}
有什么解决方案吗?谢谢。
答案 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)))