I want to create new column that will get the highest number by group
lkup <- data.frame(label = c("romeo", "juliet"), number = c(2, 3))
dat <- read.table(header = TRUE, text = "chrom position strand value label
chr1 17432 - 0 romeo
chr1 17433 - 0 romeo
chr1 17434 - 0 romeo
chr1 17435 - 0 romeo
chr1 17409 - 1 juliet
chr1 17410 - 1 juliet
chr1 17411 - 1 juliet")
library(dplyr)
dat %>%
left_join(lkup, by = "label") %>%
group_by(label) %>%
mutate(number = row_number() + number - 1)
this would be the outpuut
#output
chrom position value label number label1 max_number
chr1 17432 - 0 romeo 2 romeo 5
chr1 17433 - 0 romeo 3 juliet 5
chr1 17434 - 0 romeo 4
chr1 17435 - 0 romeo 5
chr1 17409 - 1 juliet 3
chr1 17410 - 1 juliet 4
chr1 17411 - 1 juliet 5