对不起伙计们,我是新来的:
我希望在我的数据框架中看到平均每天获得罚款的汽车数量。所以我想平均每天获得“罚款=是”的汽车。我怎么能这样做?
df
Car Fine Date
1 Yes 10/10/2017
2 Yes 10/10/2017
3 Yes 10/10/2017
4 No 10/10/2017
5 No 11/10/2017
6 Yes
7 No
8 Yes
所以我可以获得1个号码:每天被罚款的汽车数量很多
由于
答案 0 :(得分:1)
使用tidyverse包,您可以通过以下方式执行此操作:
首先,我读了这样的数据:
df <- tibble(
"Car" = 1:9,
"Fine" = as.factor(c("Yes", "Yes", "Yes", "No", "No", "Yes", "No", "Yes", "No")),
"Date" = as.factor(as.Date(c("10/10/2017", "10/10/2017", "10/10/2017", "10/10/2017", "11/10/2017", "11/10/2017", "11/10/2017", "11/10/2017", "11/10/2017"), "%d/%m/%Y"))
)
此管道可以满足您的需求:
summary <- df %>%
group_by(Date) %>%
summarise(ratio = sum(Fine == "Yes")/n())
输出结果为:
# A tibble: 2 x 2
Date Ratio
<fctr> <dbl>
1 2017-10-10 0.75
2 2017-10-11 0.40
您可以使用as.tibble()
命令将data.frame转换为tibble。对于group_by()
命令,我将“日期”列转换为因子。