从R中的类引用列表中获取类引用字段的最小值

时间:2012-07-25 18:50:17

标签: r for-loop

R初学者。

我有一个类引用列表。每个类都有一个字段“x”。我想找到列表中具有最低“x”的类引用。

在python中我会这样做:

return min(item.x for item in myList)

我不确定上面的陈述类型是否有特定的术语(如果有人知道我想知道),但是有没有办法在R中做类似的事情?

如果没有,那么在R中实现这一目标的最佳方式是什么?

**编辑重新。贾斯汀斯评论

以下是列表的创建方式..

mylist <- list()
for (i in 1:10){
    mylist <- c(mylist, MyClass$new())
}

其中:

MyClass <- setRefClass("MyClass",
                        fields = list(x = "numeric"),
                        methods = list(
                           initialize = function(){
                               x <<- sample(0:100, 1)
                           }
                        )
)

非常感谢

2 个答案:

答案 0 :(得分:2)

如果你想使用x的最小值来获取MyClass的整个实例,而不是x的最小值(你似乎在寻找前者),考虑在某事物中使用which.min如下:

mylist[[which.min(lapply(mylist, function(myClass) myClass$x))]]

答案 1 :(得分:1)

您的列表只是一个可以使用其命名组件访问的列表:

> mylist[[1]]$x
[1] 66
> 

所以我的评论中的答案将起作用:

> min(unlist(lapply(mylist, function(y) y$x)))
[1] 20

我会把细节留给比我更了解R的OO的人......