如何在R中使用类似于tapply的东西,但保留其他列。

假设我有这样一个数据框。

 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)),]

给TA打赏
共{{data.count}}人
人已打赏
未分类

如何在C语言中从txt文件中读取和添加数字?

2022-9-8 8:37:40

未分类

将图像与边框背景贴合

2022-9-8 8:37:42

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索