r之计算非收费算法来查找变量的最小值和最大值 wrt r 在大数据帧中的一个因素
yxwkf
阅读:97
2024-09-07 23:24:14
评论:0
我有一个非常大的数据框,其中一些值与一个因素相关联,如下所示:
value user
12 USER1
4 USER5
6 USER3
50 USER1
2 USER2
1 USER1
8 USER5
9 USER3
55 USER1
15 USER2
我想找出每个用户值(value)的最大值和最小值。我尝试使用 for 循环,在其中创建一个临时变量并在其中找到最大值和最小值,遍历用户列表。但是,数据库的大小相当大(100Mb)并且需要很长时间(30 分钟)。 有没有更聪明的方法来做到这一点? 谢谢。
请您参考如下方法:
如果 df 是“大”数据的原始 data.frame,建议使用 data.table 包:
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
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。



