【问题标题】:Get min value of a class reference field from a list of class references in R从R中的类引用列表中获取类引用字段的最小值
【发布时间】:2012-07-25 18:50:17
【问题描述】:

这里是初学者。

我有一个类引用列表。每个类都有一个字段“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)
                           }
                        )
)

非常感谢

【问题讨论】:

  • 您能与我们分享您的部分数据吗?使用dput。否则,很难判断您正在使用哪种类型的数据结构,并且答案会相应变化。像min(unlist(lapply(myList, function(y) y$x))) 这样的东西可能会起作用......

标签: r for-loop


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-25
      • 1970-01-01
      • 2019-06-06
      • 1970-01-01
      • 2019-02-13
      • 2020-04-28
      • 2019-01-29
      • 1970-01-01
      相关资源
      最近更新 更多