Let\'s say I have four samples: id=1, 2, 3, and 4, with one or more measurements on each of those samples:
> a <- data.frame(id=c(1,1,2,2,3,4), value=c
Here is a dplyr approach
dplyr
library(dplyr) a %>% group_by(id) %>% top_n(1, abs(value)) # A tibble: 4 x 2 # Groups: id [4] # id value # <dbl> <dbl> #1 1 2 #2 2 -4 #3 3 -5 #4 4 6