计算非收费算法来查找变量的最小值和最大值 wrt r 在大数据帧中的一个因素?

Computationally non tolling algorithm to find min and max of a variable wrt a factor in r in large data frame?

我有一个非常大的数据框,其中一些值与一个因素相关联,如下所示:

value      user
12         USER1
4          USER5
6          USER3
50         USER1
2          USER2
1          USER1
8          USER5
9          USER3
55         USER1
15         USER2

我想找出每个用户的最大值和最小值。我尝试使用 for 循环,在其中创建一个临时变量并在其中找到最大值和最小值,遍历用户列表。但是,数据库的大小相当大(100Mb)并且需要很长时间(30 分钟)。 有没有更聪明的方法来做到这一点? 谢谢

如果 df 是你原来的 data.frame for "big" data 建议使用 data.table package:

library(data.table)

dt = data.table(df)
setkey(dt, user)

dt[,list(min(value), max(value)),by=user]
    user V1 V2
1: USER1  1 55
2: USER5  4  8
3: USER3  6  9
4: USER2  2 15

编辑:使用 plyr!

中的 each 的好例子
> library(plyr)
> dt[,as.list(each(min,max)(value)),by=user]
    user min max
1: USER1   1  55
2: USER5   4   8
3: USER3   6   9
4: USER2   2  15

仅使用基础 R:

lapply(split(df$value, df$user), range)