提取每组中的最小值和最大值,并使用R添加新的文本列

提取每组中的最小值和最大值,并使用R添加新的文本列,r,R,我有一个要转换的数据帧(df): No Journey 101 1 101 2 101 3 101 4 121 1 121 2 121 3 132 1 132 2 132 3 预期产出: No Journey Comment 101 1 min 101 4 max 121 1 min 121 3 max 132 1 min 132 3 max 要获得上述输出,我知道我可以执行以下操作以获得两个单独的数据帧,而不是组合在一起: aggregate(df$Journe

我有一个要转换的数据帧(df):

No  Journey
101 1
101 2
101 3
101 4
121 1
121 2
121 3
132 1
132 2
132 3
预期产出:

No  Journey Comment
101 1   min
101 4   max
121 1   min
121 3   max
132 1   min
132 3   max
要获得上述输出,我知道我可以执行以下操作以获得两个单独的数据帧,而不是组合在一起:

aggregate(df$Journey ~ df$No, data=df, min)
aggregate(df$Journey ~ df$No, data=df, max)
然后使用ifelse()编写专栏“Comment”,但我正在寻找一种比我的建议更优雅的方式

有什么想法吗?谢谢

这是否有效:

df %>% group_by(No) %>% filter(Journey %in% c(min(Journey), max(Journey))) %>% arrange(No, Journey) %>% mutate(comment = case_when(row_number() == 1 ~ 'min', TRUE ~ 'max' ))
# A tibble: 6 x 3
# Groups:   No [3]
     No Journey comment
  <dbl>   <dbl> <chr>  
1   101       1 min    
2   101       4 max    
3   121       1 min    
4   121       3 max    
5   132       1 min    
6   132       3 max    
df%%>%group\u by(No)%%>%filter(行程百分比在%c中(最小(行程),最大(行程))%%>%arrange(No,行程)%%>%mutate(行号()=1~'min',TRUE~'max')时注释=case\u
#一个tibble:6x3
#组别:无[3]
无可奉告
1011分钟
2 101 4最大值
3 121 1分钟
最多4 121 3
5132 1分钟
最多6 132 3
这是否有效:

df %>% group_by(No) %>% filter(Journey %in% c(min(Journey), max(Journey))) %>% arrange(No, Journey) %>% mutate(comment = case_when(row_number() == 1 ~ 'min', TRUE ~ 'max' ))
# A tibble: 6 x 3
# Groups:   No [3]
     No Journey comment
  <dbl>   <dbl> <chr>  
1   101       1 min    
2   101       4 max    
3   121       1 min    
4   121       3 max    
5   132       1 min    
6   132       3 max    
df%%>%group\u by(No)%%>%filter(行程百分比在%c中(最小(行程),最大(行程))%%>%arrange(No,行程)%%>%mutate(行号()=1~'min',TRUE~'max')时注释=case\u
#一个tibble:6x3
#组别:无[3]
无可奉告
1011分钟
2 101 4最大值
3 121 1分钟
最多4 121 3
5132 1分钟
最多6 132 3