如何基于R中的条件组合对数据进行子集

奥兹

我有几百万行数据,我需要创建一个子集。尽管努力并在网络上搜索,但没有成功。问题是:

如何创建仅包含value所有IDitem组合的最小值的子集

数据结构如下所示:

> df = data.frame(ID = c(1,1,1,1,2,2,2,2),
            item = c('A','A','B','B','A','A','B','B'),
            value = c(10,5,3,2,7,8,9,10))

> df
   ID item value
1  1    A    10
2  1    A     5
3  1    B     3
4  1    B     2
5  2    A     7
6  2    A     8
7  2    B     9
8  2    B    10

结果应如下所示:

  ID item value
  1    A     5
  1    B     2
  2    A     7
  2    B     9

任何提示,不胜感激。谢谢!

阿克伦

我们可以结合分组变量'ID'和'item'使用aggregatefrombaseR来获取min'value'

aggregate(value~., df, min)
#  ID item value
#1  1    A     5
#2  2    A     7
#3  1    B     2
#4  2    B     9

或使用 dplyr

library(dplyr)
df %>%
   group_by(ID, item) %>%
   summarise(value = min(value))

或搭配 data.table

library(data.table)
setDT(df)[, .(value = min(value)) , .(ID, item)]

或者另一个选择是在分组后order获取first

setDT(df)[order(value), head(.SD, 1), .(ID, item)]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何基于R中的条件对数据帧进行子集

如何基于两个条件对数据进行子集

根据R中的某些条件对数据帧进行子集

如何根据R中列名中的数字条件对数据进行子集化?

如何根据多个联合条件在 R 中对数据框进行子集化

如何基于基础R中的另一个数据帧对数据帧进行子集

如何使用基于R中最近位置的坐标对数据框中的行进行子集化

R-基于配对数据条件的子集

您如何基于列名对数据框进行子集化?

如何基于两个变量对数据进行子集

如何有效地基于列对数据进行子集化(R)

如何基于R中的时间间隔对数据进行分组

如何基于R中的列对数据帧进行分类?

基于r中条件的子集数据

基于 R 中条件的子集数据

如何根据用户指定的条件对数据帧进行子集

R:如何同时按条件和随机对数据帧进行子集化?

根据R中的多个通配符条件对数据框进行子集

如何基于适用于大量列的“不等于”条件对数据帧进行子集化?

根据r中id中的值对数据进行子集

在 R 中,如何根据向量中的值对数据帧的行进行子集

你如何从 R 中的列表中对数据进行子集化?

如何基于另一个数据帧中的值对数据帧进行子集设置?

在 R 中对数据集进行子集化

从 R 中的函数内对数据进行子集化

如何按日期对数据进行子集化并在R中执行多项操作?

如何使用占位符在 r 中对数据帧进行子集化

如何根据R中两列不匹配的值对数据框进行子集化?

如何像R中的SAS那样按列名对数据帧进行子集化?