> ls()
[1] "A" "anorex.1" "anorexia" "B" "byMonth" "C" "clotting"
[8] "counts" "d" "D" "d.AD" "DelayByDay" "delayed" "glm.D93"
[15] "glmout" "groups" "h" "housing" "madeup" "notdelayed" "outcome"
[22] "q19" "q22.1" "q23" "q23.1" "q25" "q25.1" "q26"
[29] "q26.2" "speed" "tmp" "treatment" "tt" "w" "wnd"
[36] "x" "y" "z"
我在想的是让我说我想知道我工作区中所有对象的类,并且想想写一个循环,其效果如下:
for(x in 1:38) print(class(ls(1)[x]))
但是这给了我角色作为每个对象的类(如果我没有错,那就是每个对象名称的类。)
我试图找出工作区,类,长度或暗淡中的对象。 for循环可以实现这一点,应用函数之一是否也可以执行此操作。 THX
答案 0 :(得分:5)
你的循环只使用一个字符名称,所以R认为它只是一个字符向量。你需要获得对象本身。您可以使用mget()
从字符向量中获取给定环境中的多个对象。这意味着我们可以通过它ls()
。然后我们可以浏览该列表并获得该类。
lapply(mget(ls()), class)
我使用lapply()
因为某些对象完全有可能有多个类。
如果您想了解有关该对象的其他属性/信息,请编写一个函数。
f <- function(x) list(dim = dim(x), class = class(x))
lapply(mget(ls()), f)
答案 1 :(得分:0)
您可以使用get()
。像:
for (i in ls()) {
print(get(i))
}