Base R, split-apply-combine (Edited):
# Create df, ensure date vec has appropriate type: 
df <- data.frame(
  Date = as.Date(c("27/9/2019", "28/9/2019", "1/10/2019", "2/10/2019"), "%d/%m/%y"),
  Var = c("A", "A", "B", "B"), 
  Value = c(56, 50, 90, 100),
  stringsAsFactors = F
)
# Split df by "Var" values: 
split_applied_combined <- lapply(split(df, df$Var), function(x){
# Calculate the max date: 
    max_date <- x$Date[which(x$Value == max(x$Value))]
    # Calculate the mean: 
    mean_val <- mean(x$Value)
    # Calculate the std_dev: 
    sd_val <- sd(x$Value)
   # Combine vects into df: 
    summarised_df <- data.frame(max_date, mean_val, sd_val)
    }
  )
# Combine list back into dataframe:
split_applied_combined <- do.call(rbind, 
                          # Store df name as vect:
                                  mapply(cbind,
                                         "Var" = names(split_applied_combined),
                                         split_applied_combined,
                                         SIMPLIFY = FALSE))
Dplyr alternative: 
require("dplyr")
# Group by var, summarise data, store return object as a dataframe: 
summarised_df <- 
  df %>% 
  group_by(Var) %>% 
  summarise(max_date_per_group = max(Date), mean_val_per_group = mean(Value), sd_per_group = sd(Value)) %>% 
  ungroup()