有没有办法让我在列表中工作

时间:2020-07-22 15:59:15

标签: r

是否有必要使r在列表中“起作用”?即假设当前环境是某个列表?

我有一些代码,其中我操纵的所有对象都在一个列表中,称为“ mylist”。

有没有办法告诉我要在mylist中查找所有对象,而不是编写

mylist$object

我可以写

object

r会自动在mylist中查找它吗?

我是一位相当新的用户,如果我滥用任何术语,我深表歉意。

1 个答案:

答案 0 :(得分:1)

您要寻找with()吗?

例如,

mylist <- list(object = c(1:10),
               obj2 = c("a", "b"))

with(mylist, sum(object))
[1] 55

with(mylist, obj2)
[1] "a" "b"

# etc

如果没有,听起来您实际上可能不想将对象作为元素存储在列表中;相反,最好在全局环境中创建单个对象以供参考。

如果您有多个列表,每个列表包含相同类型的对象,并且要在这些列表上执行相同类型的任务,那么现在该考虑编写函数了。即使使用函数,您仍需要将这些组件拆开(或将函数传递给with()!),以便能够通过其名称(例如object或{{ 1}})。

在R中阅读列表和环境可能会有所帮助。为此,有一些很好的资源:

(列表)-http://rforpublichealth.blogspot.com/2015/03/basics-of-lists.html

(环境)-http://adv-r.had.co.nz/Environments.html