如何分组和选择R中的最小值

如何分组和选择R中的最小值,r,R,假设以下数据 OriginId, OriginName, DestinationId, DestinationName,Time 1 , Origin 1, 1 , Destination 1 , 20 1 , Origin 1, 2 , Destination 2 , 25 2 , Origin 2, 3 , Destination 3 ,

假设以下数据

OriginId, OriginName, DestinationId, DestinationName,Time
1        ,   Origin 1,   1       ,          Destination 1 , 20
1        ,   Origin 1,   2       ,          Destination 2 , 25
2        ,   Origin 2,   3       ,          Destination 3 , 14
2        ,   Origin 2,   4       ,          Destination 4 , 29
这是一个CSV,用于保存起点和目的地之间的旅行时间。我想找到每个原点最近的目的地。换句话说,我必须按OriginId对数据进行分组,并根据时间给每个组排序,然后得到排名为1的行。因此,上述数据的预期结果为:

OriginId, OriginName, DestinationId, DestinationName,Time(Minute)
1        ,   Origin 1,   1       ,          Destination 1 , 20
2        ,   Origin 2,   3       ,          Destination 3 , 14

分组依据后我需要使用哪个R函数?

使用
dplyr
,可以按“OriginId”分组,然后用
Which.min
获取具有最小“Time”的“Time”行索引,用
切片提取该行

library(dplyr)
df1 %>%
  group_by(OriginId) %>%
  slice(which.min(Time))

或者,如果我们考虑使用<代码>数据>表< /代码>,将“数据帧”转换为“数据表”(<代码> SEDT(DF1)< /代码>),由“Outlook ID”分组,得到行索引(如前一种情况)和数据集的行子集(<代码> SD)。


使用
dplyr
,可以按“OriginId”分组,然后使用
which.min
获取具有最小“Time”的“Time”行索引,使用
slice
提取该行

library(dplyr)
df1 %>%
  group_by(OriginId) %>%
  slice(which.min(Time))

或者,如果我们考虑使用<代码>数据>表< /代码>,将“数据帧”转换为“数据表”(<代码> SEDT(DF1)< /代码>),由“Outlook ID”分组,得到行索引(如前一种情况)和数据集的行子集(<代码> SD)。


谢谢,能不能给你的答案添加一些细节?@shaahin抱歉,我的浏览器上的javascript出现了一些问题,使我无法更新描述。现在,它已更新。谢谢,您的回答中是否可以添加一些详细信息?@shaahin抱歉,我的浏览器上的javascript出现了一些问题,使我无法使用描述进行更新。现在,它被更新了。