如何从R中的多个列表中找到最小的元素?

如何从R中的多个列表中找到最小的元素?,r,correlation,R,Correlation,我有三个数据帧,包括行是基因(基因名称相同),列是估计值(相关系数)、p值、Q值。您可以看到该图以轻松理解列表的结构 现在,我想从三个列表中提取基因,同时获得三个列表中最小的负相关系数。我对负相关系数按递增顺序排序。例如,基因“IGF1R”符合我的要求 有人能帮我吗。非常感谢 假设您的项目是data.frames,您可以将它们放入列表中,然后一次处理每个项目。此实现将查找具有最小hp的行并将其列出。结果是一个列表,您可以使用do.call将其折叠成data.frame。如果您想知道项目的来源

我有三个数据帧,包括行是基因(基因名称相同),列是估计值(相关系数)、p值、Q值。您可以看到该图以轻松理解列表的结构

现在,我想从三个列表中提取基因,同时获得三个列表中最小的负相关系数。我对负相关系数按递增顺序排序。例如,基因“IGF1R”符合我的要求


有人能帮我吗。非常感谢

假设您的项目是data.frames,您可以将它们放入列表中,然后一次处理每个项目。此实现将查找具有最小
hp
的行并将其列出。结果是一个列表,您可以使用
do.call
将其折叠成data.frame。如果您想知道项目的来源(即它来自哪个data.frame),那么解决方案需要更多的参与,但不重要

这些价值观

xy <- split(mtcars, f = mtcars$cyl)

out <- sapply(xy, FUN = function(x) {
  x[which.min(x$hp), ]
}, simplify = FALSE)

> out
$`4`
             mpg cyl disp hp drat    wt  qsec vs am gear carb
Honda Civic 30.4   4 75.7 52 4.93 1.615 18.52  1  1    4    2

$`6`
         mpg cyl disp  hp drat   wt  qsec vs am gear carb
Valiant 18.1   6  225 105 2.76 3.46 20.22  1  0    3    1

$`8`
                  mpg cyl disp  hp drat   wt  qsec vs am gear carb
Dodge Challenger 15.5   8  318 150 2.76 3.52 16.87  0  0    3    2

> do.call(rbind, out)
   mpg cyl  disp  hp drat    wt  qsec vs am gear carb
4 30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
6 18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
8 15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2
xy do.call(rbind,out)
mpg气缸显示hp drat wt qsec与am齿轮carb
4 30.4   4  75.7  52 4.93 1.615 18.52  1  1    4    2
6 18.1   6 225.0 105 2.76 3.460 20.22  1  0    3    1
8 15.5   8 318.0 150 2.76 3.520 16.87  0  0    3    2

您是否有数据框或列表?您的要求是什么?为什么“IGF1R”符合要求?在上面的例子中,没有一个独特的基因在所有3个数据帧中具有最小的相关系数。hi@AntonioK,我有三个单独的列表,就像三个单独的数字一样。我们可以很容易地将它们转换为数据帧,所以我认为这不是一个问题。此外,正如我所说,“我确实对每三个列表按递增顺序排列负相关系数”,这意味着,根据相关系数的解释,IGF1R将与我感兴趣的三个临床特征呈强下坡(负)线性关系。谢谢是的,但在你的例子中,你用最小的估计数发布了前6个基因。为什么不是前三名呢?在这种情况下,IGF1R仅出现在1个数据帧中。为什么不是前十名呢?在这种情况下,其他基因也可能出现。你必须有一个门槛或一个哲学,在你定义的“强烈的负面关系”背后。@安东尼奥,是的,你的权利,我应该考虑一个门槛。