I am not sure why your expected per values are like that, but maybe you want the following:
df <- data.frame(Date = c("22-01-05", "22-01-05", "22-01-08", "22-01-08"),
                 cat = c("A", "B", "A", "B"),
                 cam = c(60,20,30,30),
                 reg = c(120,100,150,100),
                 per = c(50,20,20,30))
library(dplyr)
df %>% 
  group_by(Date) %>% 
  summarise(cam = sum(cam),
            reg = sum(reg),
            per = cam/reg)
#> # A tibble: 2 × 4
#>   Date       cam   reg   per
#>   <chr>    <dbl> <dbl> <dbl>
#> 1 22-01-05    80   220 0.364
#> 2 22-01-08    60   250 0.24
Created on 2022-07-07 by the reprex package (v2.0.1)