具有多个条件 R 的频率计数

有一个数据框

Date         Team            Opponent   Weather   Outcome
2017-05-01   All Stars       B Stars      Rainy     1
2017-05-02   All Stars       V Stars      Rainy     1
2017-05-03   All Stars       M Trade      Sunny     0
 .
 .
2017-05-11   All Stars       Vdronee      Sunny     0

结果 1 表示获胜。我已经使用 table 函数来获取频率和应用条件。

table(df$Outcome, df$Team == "All Stars")

还我这个

    FALSE TRUE
  0  1005   30
  1  1323   57

所以获胜的频率是 57/87 =0.655

两个问题:

而是手动计算获胜频率,如何将其直接嵌入到公式中?

如何根据 x 最近的观察进行过滤?即类似的东西

    table(df$Outcome, df$Team == "All Stars" & df$date = filtering for the 5 most recent observations)

谢谢

DJJ

一个选择是使用 data.table

libray(data.table)
dt <- data.table(df)
dt[, .(prop=sum(outcome)/.N),Team]

要获得 5 个最近的观察结果,您可以执行以下操作:

dt[,head(.SD,5),by=.(Team,Date)][,.(prop=sum(outcoume/.N),Team]

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章