gpt4 book ai didi

r - 如何对工作区中的元素运行循环?

转载 作者:行者123 更新时间:2023-12-04 11:00:27 24 4
gpt4 key购买 nike

> 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 循环可以完成此任务吗?apply 函数之一也可以完成此任务吗?谢谢

最佳答案

您的循环仅使用字符名称,因此 R 认为它只是一个字符向量。您需要获取对象本身。您可以使用 mget() 从字符向量中获取给定环境中的列表中的多个对象。这意味着我们可以传递它ls()。然后我们可以运行该列表并获取类。

lapply(mget(ls()), class)

我使用lapply(),因为某些对象完全有可能拥有多个类。

如果您想了解该对象的其他属性/信息,请编写一个函数。

f <- function(x) list(dim = dim(x), class = class(x))
lapply(mget(ls()), f)

关于r - 如何对工作区中的元素运行循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32572707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com