抱歉,如果标题有点罗嗦,希望这个例子会有所帮助。我有以下数据集:
my_df
Description thisYVal thisPts
1 (12:00) Start Period 0 0
2 (12:00) Jump Ball Thomas vs Grant 0 0
3 (11:48) [MIA 3-] Wade Layup Shot: Missed 0 2
4 (11:46) [PHL] Thomas Rebound (Off: Def:1) 0 0
6 (11:02) [MIA] Haslem Jump Shot: Missed -19 2
7 (11:00) [MIA] Haslem Rebound (Off:1 Def:) 0 0
8 (10:57) [MIA] Haslem Layup Shot: Missed 0 2
9 (10:56) [PHL] Coleman Rebound (Off: Def:1) 0 0
dput(my_df)
structure(list(Description = c("(12:00) Start Period", "(12:00) Jump Ball Thomas vs Grant",
"(11:48) [MIA 3-] Wade Layup Shot: Missed", "(11:46) [PHL] Thomas Rebound (Off: Def:1)",
"(11:02) [MIA] Haslem Jump Shot: Missed", "(11:00) [MIA] Haslem Rebound (Off:1 Def:)",
"(10:57) [MIA] Haslem Layup Shot: Missed", "(10:56) [PHL] Coleman Rebound (Off: Def:1)"
), thisYVal = c(0L, 0L, 0L, 0L, -19L, 0L, 0L, 0L), thisPts = c(0L,
0L, 2L, 0L, 2L, 0L, 2L, 0L)), row.names = c(1L, 2L, 3L, 4L, 6L,
7L, 8L, 9L), class = "data.frame")
...我想提取出现在Description
数据框列中的 3 个字母的团队缩写。
3 个字母的描述总是跟在第一个方括号[之后,尽管它并不总是跟在右括号]之后(正如您在数据框的第 3 行中看到的那样)。
我一直在尝试使用 substr() 函数来做到这一点,但到目前为止还没有运气。任何帮助表示赞赏!
编辑:一些额外的上下文 - 一些行(在这种情况下为 1 和 2)没有 [] 或团队缩写。在这些情况下,数据框可能会返回空白字符串、NA 或其他内容。
EDIT-2:只是以防万一,因为它没有明确提到 - 第四列c("", "", "MIA", "PHL", "MIA", "MIA", "MIA", "PHL")
是我想要得到的
编辑3:以下让我接近,但不完全在那里
my_df %>%
dplyr::mutate(teamAbb = unlist(stringr::str_extract(Description, "\\[(.*)\\]")))