【发布时间】:2023-03-28 05:51:01
【问题描述】:
我正在尝试确定我创建的列表中元素来自的向量。我将在这里给出一个可重复的示例:
set.seed(101)
a <- runif(10, min=0, max=100)
b <- runif(10, min=0, max=100)
c <- runif(10, min=0, max=100)
d <- runif(10, min=0, max=100)
information <- list(a, b, c, d)
information.wanted <- mean(do.call(pmax, information))
获取信息的代码。想要的工作正常。我现在要查找的是列表中每个最大值来自的单个向量。例如,information.wanted (87.97...) 中的值 1 来自信息列表中的向量 b。我想创建另一段代码,给出 information.wanted 来自的向量。
> information.wanted
[1] 87.97957 95.68375 73.19726 93.16344 92.33189 91.34787 82.04361 81.42830 62.20120
[10] 92.48044
我不知道如何做到这一点。我尝试过的任何代码都没有让我接近。
postition.of.information.wanted <- ??
我正在寻找这样的东西。数字向量很好。我可以稍后补充这些值。
> position.of.informaiton.wanted
[1] 2 3 ...
任何帮助将不胜感激。谢谢。
【问题讨论】:
-
所有值都是唯一的吗?
-
可以试试
apply(do.call(rbind, information), 2, which.max)也许 -
不一定。如果假设所有值都是唯一的,那么我可以尝试一个更简单的解决方案。该数据集是一个大型数值模拟 - 列表包含 13 个向量,每个向量有 10,000 个元素,因此在不同位置肯定有可能存在重复
-
apply(do.call(rbind, information), 2, which.max)似乎工作得很好。谢谢!
标签: r list vector data-manipulation