如何分组和选择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出现了一些问题,使我无法使用描述进行更新。现在,它被更新了。