在R中检查包的对象的类

时间:2016-12-13 05:44:36

标签: r dataframe

我想检查所有对象是包中的数据帧#34;数据集"如果找到他们我想检查条件,如果这些数据框的维度是248观察和8变量然后打印这些对象 这是我尝试过的代码,但无法获得输出。

library(datasets)
lsf.str("package:datasets")

listname <- as.list((ls("package:datasets")))
lst=c()
for(i in listname){
  lst <- is.data.frame(as.name(listname[[i]]))

}

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您最需要的是get函数和Filter函数。

datasets <- as.environment("package:datasets")
dataset_names <- ls(envir = datasets)
filter_func <- function(x){
    y <- get(x, envir = datasets)
    is.data.frame(y) && all(dim(y) == c(248, 8))
}
Filter(filter_func, dataset_names)