我想检查所有对象是包中的数据帧#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]]))
}
非常感谢任何帮助。
答案 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)