Dataframe 如何通过一个ID列对两列的值求和,使某些列保持重复值,而排除其他列?

Dataframe 如何通过一个ID列对两列的值求和,使某些列保持重复值,而排除其他列?,dataframe,Dataframe,我需要组织一个大型df,通过列ID添加列的值(ID不是顺序的),保留df中某些列的重复值(通过ID),并排除具有不同值(通过ID)的列。下面我插入了一个可复制的示例和我需要的输出。我认为有一个简单的方法可以做到这一点,但我不太熟悉R df=read.table(textConnection(" ID spp effort generalist specialist 1 a 10 1 0

我需要组织一个大型df,通过列ID添加列的值(ID不是顺序的),保留df中某些列的重复值(通过ID),并排除具有不同值(通过ID)的列。下面我插入了一个可复制的示例和我需要的输出。我认为有一个简单的方法可以做到这一点,但我不太熟悉R

df=read.table(textConnection("

ID       spp      effort   generalist        specialist

1          a          10        1          0

1          b          10        1          0

1          c          10        0          1

1          d          10        0          1

2          a          16        1          0

2          b          16        1          0

2          e          16        0          1

"), header = TRUE)
我需要的输出:

ID  effort  generalist  specialist
1   10  2   2
2   16  2   1

事实上我得到了。。。但我相信其他人有更直接的方法<代码>库(data.table)df我相信可以按id和efforce列进行分组,然后为generalist和specialist列生成聚合摘要。您可以应用于您正在使用的编程语言。