【问题标题】:Struggling to find the total number of rows that meet a certain variable grouped by another variable努力寻找满足由另一个变量分组的某个变量的总行数
【发布时间】:2020-12-08 23:16:47
【问题描述】:

我正在对 NFL 踢球者的数据集进行一些简单的分析,并试图找出按每个踢球者分组的 18-29 码的踢球总数。数据集的行包含每个踢球者的每一个射门得分,以及与此问题无关的距离和其他一些变量。我使用 groupby() 然后 sum 函数中的 summarise 函数,但它为每个踢球者返回 1。我尝试了不同的组合,也尝试使用 filter() ,但结果不断为每个踢球者返回 1。附上我的代码图片。任何帮助表示赞赏:)

我尝试过的一些代码:

kicks20to29 <- nfl_kicks1%>%
  group_by(Kicker)%>%
  count(filter(nfl_kicks1$`FG Length`>=18 & nfl_kicks1$`FG Length`<=29))
kicks20to29 <- nfl_kicks1%>%
  group_by(Kicker)%>%
  filter(`FG Length`>=18 & `FG Length`<=29)

dput 输出:

structure(list(Quarter = c(1, 2, 1, 2, 2, 4), `Possession Team` = c("NE", 
"NE", "NE", "NE", "NE", "NE"), `Wind Speed` = c("6", "6", "12", 
"12", "12", "12"), Down = c(4, 4, 4, 4, 4, 4), Distance = c(13, 
7, 2, 6, 9, 12), YardLine = c(22, 20, 2, 6, 35, 25), `FG Length` = c(39, 
37, 19, 23, 52, 42), `4Q to tie or take lead` = c(0, 0, 0, 0, 
0, 0), Result = c("Miss", "Miss", "Good", "Good", "Good", "Miss"
), `Success Rate` = c(0, 0, 1, 1, 1, 0), Kicker = c("A.Vinatieri", 
"A.Vinatieri", "A.Vinatieri", "A.Vinatieri", "A.Vinatieri", "A.Vinatieri"
), `# career kicks in study` = c(766, 766, 766, 766, 766, 766
)), row.names = c(NA, -6L), class = c("tbl_df", "tbl", "data.frame"
))

【问题讨论】:

  • 刚刚编辑了帖子。感谢您的耐心等待。

标签: r dplyr


【解决方案1】:

一种方法是使用tally 函数,它计算每组的行数。

library(tidyverse)
nfl_kicks1 %>%
  group_by(Kicker) %>% 
  dplyr::filter(`FG Length` >= 18 & `FG Length` <= 29) %>%
  tally(name = "Number of Kicks")
## A tibble: 1 x 2
#  Kicker      `Number of Kicks`
#  <chr>                   <int>
#1 A.Vinatieri                 2

【讨论】:

  • 我确实还有一个问题。这不是计算他们在 18-29 码范围内尝试的踢球次数吗?我需要在过滤条件中添加 ``` 'Success Rate == 1' ``` 来计算品牌,对吧?
  • 您可以group_by(Kicker, `Success Rate`) 获取成功和失败的行。或者您可以添加 &amp; `Success Rate` == 1 以仅获取成功计数。
【解决方案2】:

你可以使用group_by + summarise

library(dplyr)

nfl_kicks1 %>%
  group_by(Kicker) %>%
  summarise(n_kicks = sum(`FG Length` >= 18 & `FG Length` <= 29))

【讨论】:

    猜你喜欢
    • 2021-09-20
    • 2013-09-14
    • 1970-01-01
    • 2020-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多