Несмотря на то, что формат неправильный и правильный способ - исправить формат из источника, временным решением может быть простое регулярное выражение, которое извлекает первое значение и преобразует его в числовое.т.е.
df$v1 <- as.numeric(gsub('^\\((\\d+),\\d+]$', '\\1', df$unit))
#[1] 15 60 75 45
df[which.min(df$v1),]
# unit v1
#1 (15,30] 15
df[which.max(df$v1),]
# unit v1
#3 (75,90] 75