r - 使用ddply中的summary根据一列的max()获取整行

标签 r plyr

df1

  primer timepoints        mean          sde
    Acan          0   1.0000000 0.000000e+00
    Acan         20   0.8758265 7.856192e-02
    Acan         40   1.0575400 4.680159e-02
    Acan         60   1.2399106 2.238616e-01
    Acan        120   1.1710685 2.085558e-02
    Acan        240   1.6430670           NA
    Acan        360   1.7747940           NA

我想要的是平均值的最大值(对于任何这些时间点)及其相应的 sde。

   ## this will only get me the mean obviously 
   x <- ddply(x, .(primer), summarize, max = max(mean)) 

 primer        max
   Acan   1.774794


## if I were to do this I would obviously not have just the maximum values 
   x <- ddply(x. .(primer,sde), summarize, max = max(mean))

我的一个想法可能是在 df 中包含时间点,然后匹配两个数据帧以获得一列 sdes。然后将其 cbind 到 df w/only 意味着。

但我觉得好像有一种更简单的方法可以用 ddply 来做到这一点

最佳答案

如果您不必使用摘要:

ddply(x, .(primer), function(DF) DF[DF$mean == max(DF$mean),]) 

关于r - 使用ddply中的summary根据一列的max()获取整行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063527/

相关文章:

r - ggplot2中的比例图图例显示

R 包 CEM : Error in `[.data.frame` (TEi, idt):未定义的列选择

r - 用每个组的前n行对数据框进行子集设置,并按变量排序

r - 使用 (d)plyr 创建一系列新列

r - R : how to determine contribution of each variable to a PC score 中的主成分分析

r - 将函数应用于 R 中列表元素的所有成对组合

r - 如何删除添加到图例中的斜线?

r - 基于最小值的子集数据

r - 使用 plyr : melt/cast vs. ddply 修复基于 reshape 的习惯

r - 在 R 中匹配多个日期值