首页 > 解决方案 > 在多维数组上有效地应用 R 函数

问题描述

我有一个由列表列表列表组成的数组。例如说

data[[1]][[1]][[1]][[1]][[5]]

返回一个数字。现在我需要计算这些数字中最小的一个

data[[1]][[a]][[b]][[c]][[5]]

在哪里

a = 1:10
b = 1:100
c = 1:100

我当然可以使用一些嵌套的 for 循环来做到这一点,但我觉得带有 min 的 apply 命令或 dyplr 中的等效命令应该可以毫无问题地处理这个问题。

好吧,一个非常粗略的例子是,比如说,

test <- rep(list(rep(list(rep(list(rep(list(rep(1:5,5)),100)),100)),10)),14)

那就是:

test[[1]][[14]][[10]][[100]][[100]][[5]]

返回数字 5。我现在想说的是在维度上取最小值,理论上是这样认为的:

test[[1][[1:10]][[1:100]][[1:100]][[5]]

现在很明显,通过取这些 (10*100*100) 值上出现的最小数字,我们将得到 5,因为唯一的数字本身就是 5。

标签: r

解决方案


推荐阅读