3

我刚开始学习 R 编程,并且对专门在数据框的单列中处理重复值毫无疑问。例如考虑一个“样本”数据框`

 > 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) 具有最高平均 'time1' 的用户 2) 属于 'group' 3 并且具有最大 'time2' 的用户

截至目前,我的理解是我应该使用repeat()、unique()、max()、mean() 和NROW() 函数的组合。但我很难弄清楚这一点。有关如何处理的任何指示?

4

1 回答 1

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 

不过要小心关系。

于 2012-12-07T14:01:54.080 回答