【问题标题】:How do I write a function to loop through year and country data and count the countries by year?如何编写一个函数来遍历年份和国家数据并按年份计算国家?
【发布时间】:2021-12-25 00:04:30
【问题描述】:

我正在处理球队从 2010 年到 2020 年的足球数据,我想制作一个 Excel 文件,其中包含特定年份特定球队中国家/地区份额指数的数据。目前我正在使用 R 代码:

data_collect <- ARS_data %>%
filter(Team == "ARS") %>%
filter(Year == 2010) %>%
count(Nation) 

sum(data_collect$n)

在此之后,我根据创建的表格将数据手动输入到 Excel 工作表中。这是我正在使用的数据:

我想在 R 中找到一种方法,可以用来自动化这个过程,然后将结果导出回 excel。

我现在的结果如下所示:

非常感谢您对此的任何帮助!

【问题讨论】:

    标签: r excel


    【解决方案1】:

    使用一些模拟数据作为示例数据,您可以达到您想要的结果,如下所示:

    1. 使用 count 按团队、年份和国家/地区获取计数
    2. 使用add_count 添加每支球队和每年的球员总数
    3. 使用pivot_wider 转换为宽格式
    library(dplyr)
    library(tidyr)
    
    data_collect <- ARS_data %>%
      count(Team, Year, Nation) %>% 
      add_count(Team, Year, wt = n, name = "#players") %>% 
      pivot_wider(names_from = Nation, values_from = n, values_fill = 0)
    
    data_collect
    #> # A tibble: 3 × 8
    #>   Team   Year `#players`   ESP   FRA   GER   ITA   ENG
    #>   <chr> <int>      <int> <int> <int> <int> <int> <int>
    #> 1 ARS    2010          9     2     4     1     2     0
    #> 2 ARS    2011          6     4     0     2     0     0
    #> 3 ARS    2012          5     1     1     2     0     1
    

    有几个选项可以导出到 excel。使用 writexl 包你可以这样做:

    writexl::write_xlsx(list(mysheet = data_collect), path = tempfile(fileext = ".xlsx")) 
    

    只需将path 替换为您想要的文件名,将mysheet 替换为您想要的工作表名称。

    数据

    set.seed(42)
    ARS_data <- 
      data.frame(
        Team = "ARS",
        Year = sample(2010:2012, 20, replace = TRUE),
        Nation = sample(c("ENG", "GER", "ITA", "ESP", "FRA"), 20, replace = TRUE)
      )
    

    【讨论】:

    • 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 2021-03-18
    • 1970-01-01
    • 2019-02-26
    • 1970-01-01
    • 2018-08-19
    相关资源
    最近更新 更多