【发布时间】:2021-03-08 17:09:11
【问题描述】:
我有一个如下所示的示例数据框。
| ID | File |
|---|---|
| 1 | 11_213.csv |
| 2 | 13_256.csv |
| 3 | 11_223.csv |
| 4 | 12_389.csv |
| 5 | 14_456.csv |
| 6 | 12_345.csv |
我想根据下划线和句点之间的字符串添加另一列,以获得看起来像这样的数据框。
| ID | File | Group |
|---|---|---|
| 1 | 11_213.csv | 213 |
| 2 | 13_256.csv | 256 |
| 3 | 11_223.csv | 223 |
| 4 | 12_389.csv | 389 |
| 5 | 14_456.csv | 456 |
| 6 | 12_345.csv | 345 |
我认为我需要在 stringr 中使用 str_extract 功能,但我不确定要为我的模式使用什么符号。例如当我使用:
df <- df %>%
mutate("Group" = str_extract(File, "[^_]+"))
我得到下划线之前的所有信息,如下所示:
| ID | File | Group |
|---|---|---|
| 1 | 11_213.csv | 11 |
| 2 | 13_256.csv | 13 |
| 3 | 11_223.csv | 11 |
| 4 | 12_389.csv | 12 |
| 5 | 14_456.csv | 14 |
| 6 | 12_345.csv | 12 |
但这不是我想要的。我应该使用什么来代替“[^_]+”来获取下划线和句点之间的内容?谢谢!
【问题讨论】:
-
你需要
str_extract(File, "(?<=_)(\\d+)(?=\\.)")