Я не совсем понимаю ваши цели, но вот подход аккуратного стиха:
your_data <- data.frame("Date" = c(20180514,20180514,20180514,20180513,20180513,20180513),
Value = c(3, -1, -1, 2, 5, -1))
library(tidyverse)
your_data %>%
group_by(Date) %>%
summarise(n_pos = sum(Value > 0), n_neg = sum(Value < 0), ratio = n_pos/n_neg)
# A tibble: 2 x 4
Date n_pos n_neg ratio
<dbl> <int> <int> <dbl>
1 20180513 2 1 2.00
2 20180514 1 2 0.500