假设我有这样一个数据框。
Date Value1 Value2
01-01 13.6 20
01-01 25.4 25
01-01 49.5 18
02-01 12.2 22
02-01 28.2 35
02-01 42.2 26
我想只保留这个表中每个 "Date "有最小 "Value1 "的行,所以在这种情况下, :
Date Value1 Value2
01-01 13.6 20
02-01 12.2 22
我将使用 tapply(df$Value1, df$Date, min)
如果没有 "Value2 "列,但我想在我的汇总表中保留这列。你有什么简单的建议吗?我找到了不同的类似的主题,但从来没有理解如何适应我的情况。
我们可以 slice
按 "日期 "分组后
library(dplyr)
df1 %>%
group_by(Date) %>%
slice(which.min(Value1))
或与 filter
df1 %>%
group_by(Date) %>%
filter(Value1 == min(Value1))
在 base R
这可以是一个与 ave
df1[with(df1, Value1 == ave(Value1, Date, FUN = min)),]