如何选择R中满足条件的行?

如何选择R中满足条件的行?,r,select,conditional-statements,subset,R,Select,Conditional Statements,Subset,我对R非常陌生,并且在R语言的条件下工作。 我有一个如下所示的数据框: ID nb 11 1 11 2 11 3 24 1 24 2 32 1 41 1 41 2 我想为每个不同的ID对nb=max(nb)的行进行子集划分,从而得到这个新的数据帧: ID nb 11 3 24 2 32 1 41 2 如果可能的话,有没有一种不用循环的方法 感谢您的帮助您可以将聚合与max和合并一起使用: merge(x, agg

我对R非常陌生,并且在R语言的条件下工作。 我有一个如下所示的数据框:

ID   nb
11    1
11    2
11    3
24    1
24    2
32    1
41    1
41    2
我想为每个不同的ID对nb=max(nb)的行进行子集划分,从而得到这个新的数据帧:

ID   nb
11    3
24    2
32    1
41    2
如果可能的话,有没有一种不用循环的方法


感谢您的帮助

您可以将
聚合
max
合并
一起使用:

merge(x, aggregate(nb~ID, x, max))
#  ID nb
#1 11  3
#2 24  2
#3 32  1
#4 41  2

查看
tidyverse
函数系列,它让您可以非常轻松地完成此操作!它们是非常有用的函数,需要熟悉。(特别是,如果您了解核心
dplyr
函数,您可以在R中完成大部分需要完成的事情。)

data %>%
  group_by(ID) %>%
  filter(nb == max(nb)) %>%
  ungroup()