如何从 NBA 事件日志中提取英尺数

How to extract the number of feet from an NBA event log

所以我有一个 NBA 逐场比赛数据日志的主场和客场比赛描述数据。我想从这两列中提取拍摄距离。

HomePlayDescription AwayPlayDescription
MISS Davis 20' Jump Shot NA
Holiday BLOCK (1 BLK) MISS Payton 2' Layup

在这种情况下所需的输出是 c(20,2)

我已经尝试 parse_number 从 tidyr 但这将给出向量 c(20,1),因为函数不知道我只想要提取的距离。

您可以使用这样的模式从字符串中提取距离:

(?:MISS|MADE)\b\w+(\d{1,2})'[\w\b]+
  1. 使用 acrosseparse_number 仅获取整个数据帧中的数字
  2. 使用 leadAwayPlayDescriptionHomePlayDescription
  3. 放在同一行
  4. paste他们在一起
  5. slice 第二行(这可以在多个组的组内完成。
  6. pull距离:
library(tidyverse)
df %>%
    mutate(across(everything(), parse_number)) %>% 
    mutate(AwayPlayDescription = lead(AwayPlayDescription)) %>% 
    mutate(distance = paste(HomePlayDescription, AwayPlayDescription, sep = ",")) %>% 
    slice(-2) %>% 
    pull(distance)
[1] "20,2"