R-如何选择最小pvalue以及接近数据的最小值



这是我想要的示例:

set.seed(123)    
data<-data.frame(X=rep(letters[1:3], each=4),Y=sample(1:12,12),Z=sample(1:100, 12))
setDT(data)

我想做的是选择最小y的X的唯一行,然后将下一个更接近的值

选择

所需的输出

>data
a 4 68
a 5 11
b 1 4
b 10 89
c 2 64
c 3 82

最小值在本文中已经回答了如何按最小值选择组,并在r

中包含NAS
data[, .SD[which.min(Y)], by=X]

但是如何使用最小值和下一个近距离?

对于未分组的情况,对于数据,您可以做:

data[rank(Y) %in% 1:2, ]

对于分组的情况,您可以做:

data[ , .SD[rank(Y) %in% 1:2] , by=X]
   X  Y  Z
1: a  4 68
2: a  5 11
3: b  1  4
4: b 10 89
5: c  3 82
6: c  2 64

最新更新