【发布时间】:2018-02-23 20:34:32
【问题描述】:
假设我有一个数据框:
t <- data.frame(d1=c( 694, 695, 696, 2243, 2244, 2651, 2652 ),
d2=c(1.80950881, 1.80951007, 1.80951052, 1.46499982, 1.46500087, 1.14381419, 1.14381319 ))
d1 d2
1 694 1.809509
2 695 1.809510
3 696 1.809511
4 2243 1.465000
5 2244 1.465001
6 2651 1.143814
7 2652 1.143813
我想按列d2 具有非常接近但不完全相等的值的实际值进行分组。因此,在这个例子中,经过聚合后,我想得到如下数据集:
d1 d2
1 694 1.809509
2 2243 1.465000
3 2652 1.143813
从每组中取出具有最小d2 值的行。
使用aggregate函数,我的第一次尝试:
aggregate(t, by=list(t$d2), FUN=min)
Group.1 d1 d2
1 1.143813 2652 1.143813
2 1.143814 2651 1.143814
3 1.465000 2243 1.465000
4 1.465001 2244 1.465001
5 1.809509 694 1.809509
6 1.809510 695 1.809510
7 1.809511 696 1.809511
远未达到我的目标。
我如何告诉aggregate 分组不是完全相等,而是根据提供的容错相等?
【问题讨论】: