首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算列中的递归字符串元素?在描述匹配中的得分的单元格中。计算整个数据的方法是什么?

如何计算列中的递归字符串元素?在描述匹配中的得分的单元格中。计算整个数据的方法是什么?
EN

Stack Overflow用户
提问于 2022-02-14 16:32:39
回答 2查看 36关注 0票数 0

我有这些列的数据:目标值、目标反数和得分。在一个观察中,scorers列中的细胞可能有多个得分者,例如:“TammyAbraham(34),Zaniolo (90)”。在每一场比赛中,我应该如何计算每一位得分手的进球?为了说明:

代码语言:javascript
复制
#create reprex to ask about goalscorer tally


gf <- c(5,4,0,0,1)
ga <- c(3,3,0,2,0)
scorer <- c("a,b,c,d,e","a,b,c,d", NA, NA,"e")
dat <- data.frame(gf,ga,scorer)

这就是示例的样子:

代码语言:javascript
复制
  gf ga    scorer
1  5  3 a,b,c,d,e
2  4  3   a,b,c,d
3  0  0      <NA>
4  0  2      <NA>
5  1  0         e

有人能帮忙吗?还有,这足够了吗?

我只把进球和进球放在例子中,但在实际数据中,有更多的观察,如阵形、天气、比赛等。可以说,在4-4-2阵型的低得分比赛中,射手a往往得分较低吗?差不多吧。但问题是,得分手A和其他得分手一起在得分手栏中被发现。

EN

回答 2

Stack Overflow用户

发布于 2022-02-14 17:10:54

有潮流的方法。您可能需要将strsplit scorer字符串添加到列表中,然后将列表unnest

代码语言:javascript
复制
library(dplyr)
library(tidyr)

dat |>
    mutate(scorer = strsplit(scorer, ",")) |>
    unnest(cols = c(scorer))

# A tibble: 12 × 3
      gf    ga scorer
   <dbl> <dbl> <chr> 
 1     5     3 a     
 2     5     3 b     
 3     5     3 c     
 4     5     3 d     
 5     5     3 e     
 6     4     3 a     
 7     4     3 b     
 8     4     3 c     
 9     4     3 d     
10     0     0 NA    
11     0     2 NA    
12     1     0 e  
票数 0
EN

Stack Overflow用户

发布于 2022-02-14 17:39:58

计算每名得分手和比赛的进球数:

代码语言:javascript
复制
library(dplyr)
library(tidyr)
dat %>%
  # make match ID:
  mutate(match_ID = row_number()) %>%
  # split `scorer`:
  separate_rows(scorer) %>%
  # remove rows where `scorer` is `NA`:
  filter(!is.na(scorer)) %>%
  # group by:
  group_by(match_ID,scorer) %>%
  # count number of goals per match:
  summarise(N_goals = n())
# A tibble: 10 × 3
# Groups:   match_ID [3]
   match_ID scorer N_goals
      <int> <chr>    <int>
 1        1 a            1
 2        1 b            1
 3        1 c            1
 4        1 d            1
 5        1 e            1
 6        2 a            1
 7        2 b            1
 8        2 c            1
 9        2 d            1
10        5 e            1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71115167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档