you could do something like this:
library(tidyverse)
library(lubridate)
#>
#> Attaching package: 'lubridate'
#> The following object is masked from 'package:base':
#>
#> date
data <- read.table(text = "123 '1/10/2017 12:23:00' Dissatisfied 123456
456 '15/3/2017 15:41:22' 'Very Dissatisfied' 564613
789 '23/3/2018 10:21:22' Satisfied 899989
741 '11/12/2017 09:12:22' 'Very Dissatisfied' 8989845",
col.names = c("ID", "Date", "CSI", "Phonenumber"))
data %>%
mutate(Date = lubridate::dmy_hms(Date),
week = lubridate::week(Date),
year = lubridate::year(Date)) %>%
group_by(year, week) %>%
summarize(total_responses = n(),
count_dis = sum(CSI %in% c("Dissatisfied", "Very Dissatisfied")),
perc_dis = mean(CSI %in% c("Dissatisfied", "Very Dissatisfied")))
#> # A tibble: 4 x 5
#> # Groups: year [?]
#> year week total_responses count_dis perc_dis
#> <dbl> <dbl> <int> <int> <dbl>
#> 1 2017 11.0 1 1 1.00
#> 2 2017 40.0 1 1 1.00
#> 3 2017 50.0 1 1 1.00
#> 4 2018 12.0 1 0 0
Created on 2018-03-02 by the reprex package (v0.2.0).
As a note, it is much easier to help you if you provide a reprex of your problem: