我有一个数据框
数据
Date Marks
21-01-2019 18
22-01-2019 12
23-01-2019 14
24-01-2019 20
25-01-2019 16
19-02-2019 12
20-02-2019 11
21-02-2019 18
22-02-2019 15
23-02-2019 20
24-02-2019 14
我想按月份和特定年份对数据进行分组,以获得最低分。我的输出如下所示:
Date Marks
22-01-2019 12
20-02-2019 11
最佳答案
要获得每月和每年的最小值,可以执行以下操作(涉及dplyr
):
df %>%
group_by(Date = format(as.Date(Date, format = "%d-%m-%Y"), "%m-%Y")) %>%
summarise_all(min)
Date Marks
<chr> <int>
1 01-2019 12
2 02-2019 11
与
base R
相同:aggregate(Marks ~ cbind(Date = format(as.Date(Date, format = "%d-%m-%Y"), "%m-%Y")),
FUN = min,
data = df)
如果您还想返回相应的日期:
df %>%
group_by(month_year = format(as.Date(Date, format = "%d-%m-%Y"), "%m-%Y")) %>%
slice(which.min(Marks)) %>%
ungroup() %>%
select(-month_year)
Date Marks
<chr> <int>
1 22-01-2019 12
2 20-02-2019 11
与
base R
相同:df[df$Marks == with(df, ave(Marks, format(as.Date(Date, format = "%d-%m-%Y"), "%m-%Y"),
FUN = function(x) x[which.min(x)])), ]
关于r - 如何在R中的不同日期中找到最小值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58167846/