我有两个数据帧。 Dataframe X有2列(k,l)和15行。数据框Y有1行,具有相同的列。
X
k l
1 17455432 1
2 16590126 2
3 14090453 3
4 20538871 4
5 20935544 5
6 21896196 6
7 14173206 7
8 20193468 8
9 20751149 9
10 23956919 10
11 11295749 11
12 22356733 12
13 20005475 13
14 20035158 14
15 9602016 15
Y
k l
1
我希望通过一个循环来保存具有最小值的行" k"将df X转换成df Y.我试过了:
for (s in 1:15){
if (s==1){
Y=X[s,1:2]
}else{
if (X$k[s]>X$k[s-1]){
Y=X[s-1,1:2]
}
}
}
但这对我不起作用。如何每次检查值k并保持行的最小值k为df Y?在第一次迭代时,我的Y将是X的第一行,但后来我想将值与前者进行比较,如果值小于前一个则保留行。
答案 0 :(得分:2)
对于这个(以及许多其他的)简单操作,R中不需要任何循环。试试吧:
Y<-X[which.min(X$k),]
# k l
#15 9602016 15
which.min
函数为索引提供最小值。您可以使用它来将X
作为您的请求进行分组。