在数据帧之间循环检查和存储最小值

Loop for checking and store min value, between dataframes

我有两个数据框。数据框 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  

我想通过一个循环将 df X 中具有最小值 "k" 的行保存到 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 并在 df Y 中保留最小值 k 的行?第一次迭代时,我的 Y 将是 X 的第一行,但随后我想将该值与前者进行比较,如果该值小于前者,则保留该行。

对于这个(以及许多其他)简单操作,R 中不需要任何循环。试试看:

Y<-X[which.min(X$k),]
#         k  l
#15 9602016 15

which.min函数给出具有最小值的索引。您可以根据您的要求使用它来子集 X