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)
}
)
)
非常感谢
答案 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的人......