0

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)
                           }
                        )
)

非常感谢

4

2 回答 2

2

如果您想获得具有最小值 x 的 MyClass 的整个实例,而不仅仅是 x 的最小值(您似乎正在寻找前者),请考虑使用which.min类似以下内容:

mylist[[which.min(lapply(mylist, function(myClass) myClass$x))]]
于 2012-07-25T20:54:44.700 回答
1

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

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

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

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

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

于 2012-07-25T20:21:55.363 回答