首页 > 解决方案 > 如何根据 webscrape 中的表设置列名?

问题描述

我正在做一个项目,我正在比较职业运动员的身高。从 espn.com,我提取曲棍球数据,每张桌子都有球员的位置。(见https://www.espn.com/nhl/team/roster/_/name/ari/arizona-coyotes)对于其他运动,球员的位置是它自己的列。(例如比较https://www.espn.com/mlb/team/roster/_/name/bal/baltimore-orioles。)有没有办法可以使用表名作为列?我构建了自己的函数来为亚利桑那郊狼生成这个输出:

[[1]]
# A tibble: 5 x 8
  ``    Name                 Age HT        WT      Shot  `Birth Place`       Birthdate
  <lgl> <chr>              <int> <chr>     <chr>   <chr> <chr>               <chr>    
1 NA    Nazem Kadri91         31 "6' 0\""  192 lbs L     London, ON          10/06/90 
2 NA    Nathan MacKinnon29    26 "6' 0\""  200 lbs R     Halifax, NS         09/01/95 
3 NA    Stefan Matteau22      27 "6' 2\""  220 lbs L     Chicago, IL         02/23/94 
4 NA    Jayson Megna12        31 "6' 0\""  196 lbs R     Fort Lauderdale, FL 02/01/90 
5 NA    Alex Newhook18        20 "5' 11\"" 197 lbs L     St. John's, NF      01/28/01 

[[2]]
# A tibble: 7 x 8
  ``    Name                  Age HT        WT      Shot  `Birth Place`       Birthdate
  <lgl> <chr>               <int> <chr>     <chr>   <chr> <chr>               <chr>    
1 NA    Andre Burakovsky95     26 "6' 3\""  201 lbs L     Klagenfurt, Austria 02/09/95 
2 NA    J.T. Compher37         26 "6' 0\""  190 lbs R     Northbrook, IL      04/08/95 
3 NA    Darren Helm43          34 "6' 0\""  192 lbs L     St. Andrews, MB     01/21/87 
4 NA    Tyson Jost17           23 "5' 11\"" 187 lbs L     St. Albert, AB      03/14/98 
5 NA    Gabriel Landeskog92    28 "6' 1\""  215 lbs L     Stockholm, Sweden   11/23/92 
6 NA    Sampo Ranta75          21 "6' 2\""  200 lbs L     Turku, Finland      05/31/00 
7 NA    Kiefer Sherwood44      26 "6' 0\""  194 lbs R     Columbus, OH        03/31/95 

[[3]]
# A tibble: 4 x 8
  ``    Name                  Age HT       WT      Shot  `Birth Place`        Birthdate
  <lgl> <chr>               <int> <chr>    <chr>   <chr> <chr>                <chr>    
1 NA    Martin Kaut61          22 "6' 2\"" 176 lbs R     Brno, Czech Republic 10/02/99 
2 NA    Valeri Nichushkin13    26 "6' 4\"" 210 lbs L     Chelyabinsk, USSR    03/04/95 
3 NA    Logan O'Connor25       25 "6' 0\"" 175 lbs R     Missouri City, TX    08/14/96 
4 NA    Mikko Rantanen96       25 "6' 4\"" 215 lbs L     Nousiainen, Finland  10/29/96 

[[4]]
# A tibble: 8 x 8
  ``    Name                 Age HT        WT      Shot  `Birth Place`    Birthdate
  <lgl> <chr>              <int> <chr>     <chr>   <chr> <chr>            <chr>    
1 NA    Bowen Byram4          20 "6' 0\""  194 lbs L     Cranbrook, BC    06/13/01 
2 NA    Samuel Girard49       23 "5' 10\"" 170 lbs L     Roberval, QC     05/12/98 
3 NA    Erik Johnson6         33 "6' 4\""  225 lbs R     Bloomington, MN  03/21/88 
4 NA    Jack Johnson3         34 "6' 1\""  227 lbs L     Indianapolis, IN 01/13/87 
5 NA    Kurtis MacDermid56    27 "6' 3\""  186 lbs L     Sauble Beach, ON 03/25/94 
6 NA    Cale Makar8           23 "5' 11\"" 187 lbs R     Calgary, AB      10/30/98 
7 NA    Ryan Murray28         28 "6' 1\""  206 lbs L     Regina, SK       09/27/93 
8 NA    Devon Toews7          27 "6' 1\""  191 lbs L     Abbotsford, BC   02/21/94 

[[5]]
# A tibble: 3 x 8
  ``    Name                Age HT       WT      Glove `Birth Place`         Birthdate
  <lgl> <chr>             <int> <chr>    <chr>   <chr> <chr>                 <chr>    
1 NA    Pavel Francouz39     31 "6' 0\"" 179 lbs R     Plzen, Czech Republic 06/03/90 
2 NA    Jonas Johansson31    26 "6' 4\"" 206 lbs L     Gavle, Sweden         09/19/95 
3 NA    Darcy Kuemper35      31 "6' 5\"" 215 lbs L     Saskatoon, SK         05/05/90 

我想创建一个标题为“POS”的列,其中包含表格名称而不是 [[1]]、[[2]] 等。表格名称包含球员的位置,因为曲棍球运动的组织方式与其他运动。我使用 rbindlist() 与所有这些玩家一起创建一个 tibble,因此如果我能弄清楚如何直接从桌子上创建位置将会很有帮助。谢谢

标签: r

解决方案


推荐阅读