R- Collapse rows and sum the values in the column
Using data.table
setDT(df1)[, lapply(.SD, sum) , by = ID, .SDcols = "PSM" ]
In base:
aggregate(PSM ~ ID, data=x, FUN=sum)
## ID PSM
## 1 ABC 2
## 2 CCC 58
## 3 DDD 56
## 4 EEE 80
## 5 FFF 1
## 6 GGG 90
## 7 KOO 45
## 8 LLL 4
## 9 ZZZ 8
Example using dplyr, the next iteration of plyr:
df2 <- df1 %>% group_by(ID) %>%
summarize(Sum_PSM = sum(PSM))
When you put the characters %>%
, you are "piping." This means you're inputting what is on the left side of that pipe operator and performing the function on the right.
This is super easy using the plyr
package:
library(plyr)
ddply(df1, .(ID), summarize, Sum=sum(PSM))