R聚合和计算比率

时间:2018-05-14 21:45:46

标签: r

我有两列数据,一列是另一列的日期;像     下面。     我想做的是计算每个日期行的比例     在R中,该值为正数与该日期的行数。     任何线索?

m

由于

2 个答案:

答案 0 :(得分:0)

我不完全理解你的目标,但这是一个整洁的方法:

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

答案 1 :(得分:0)

Base aggregate将对分组功能中的列执行操作:

aggregate( dat['Value'], dat['Date'], function(x=Value) sum( x >0)/length(x) )
      Date     Value
1 20180513 0.6666667
2 20180514 0.3333333