在R中的数据帧的单个列中专门使用重复值

时间:2012-12-07 13:41:54

标签: r

我刚刚开始学习R编程,对于在数据帧的单个列中专门处理重复值几乎没有疑问。例如,考虑一个'样本' dataframe`

 > Sample
     id   time1   time2             user   group
21   21   21.7    16.1               A        1   
22   22   22.6    17.0               A        2   
23   23   20.9    16.2               A        3   
24   24   21.6    16.2               B        1  
25   25   22.2    16.9               B        1   
26   26   22.5    16.9               B        1 
27   27   22.2    17.3               B        2 
28   28   24.3    16.8               D        2
29   29   22.3    16.8               D        2 
30   30   22.6    17.0               E        3  
31   31   20.1    16.5               E        3  
32   32   22.0    16.9               E        3 
33   33   22.8    16.5               E        4   
34   34   22.0    17.0               E        4  
35   35   22.4    17.0               F        1   
36   36   22.3    16.3               F        1   
37   37   20.6    16.2               F        2   

现在我需要找到 1)具有最高平均时间的用户1' 2)属于'组的用户' 3并且拥有最大的' time2'

截至目前,我的理解是我应该使用重复(),唯一(),max()和mean()以及NROW()函数的组合。但我无法解决这个问题。关于如何处理的任何指示?

1 个答案:

答案 0 :(得分:3)

您可以使用which.maxtapply

1)

which.max(tapply(Sample$time1,Sample$user,mean))
D 
3

2)

which.max(tapply(Sample$time2,Sample$user,max))
B 
2 

虽然要小心关系。