gpt4 book ai didi

r - 使用ls()或objects()获取data.frame类的对象

转载 作者:行者123 更新时间:2023-12-02 18:12:36 25 4
gpt4 key购买 nike

我是否可以循环访问一组对象并对每个对象应用一个函数?

当我输入 ls()objects() 时,它会返回对象名称列表。我想遍历这个列表,识别那些 data.frame,然后针对每个对象运行一个函数。

如何通过函数传递来自 lsobjects 的条目?

最佳答案

@jverzani 给出的关于找出哪些对象是数据框的答案很好。那么让我们从这个开始吧。但我们只想选择 data.frames 的项目。所以我们可以这样做:

#test data
df <- data.frame(a=1:10, b=11:20)
df2 <- data.frame(a=2:4, b=4:6)
notDf <- 1

dfs <- ls()[sapply(mget(ls(), .GlobalEnv), is.data.frame)]

数据框的名称现在是 dfs 对象中的字符串,因此您可以将它们传递给其他函数,如下所示:

sapply( dfs, function(x)  str( get( x ) ) )

我使用 get() 命令实际按名称获取对象(有关更多信息,请参阅 R FAQ)

我已经回答了您上面的问题,但我怀疑如果您将数据框组织到列表项中,您的代码将更具可读性且易于维护。显然,我不能肯定地说这一点,但我无法想出一个用例,其中迭代所有对象以查找数据帧优于将数据帧保留在列表中,然后调用该列表中的每个项目。

关于r - 使用ls()或objects()获取data.frame类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5796508/

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