【问题标题】:Parsing 'Table of Contents' to get the correct page numbers解析“目录”以获得正确的页码
【发布时间】:2018-08-21 01:10:48
【问题描述】:

这是目录:

df <- tibble(ToC=
             c("3.1 texta.............. 22",
             "3.2 textb     25",
             "section 6 ................. 50",
             "section 10.2       65"))

我想将内容及其各自的页码提取为两个变量。我尝试了以下方法,但无法正常工作。

library(tidyverse); library(stringr)
df_toc <- df %>%
  mutate(page = as.numeric(str_extract(ToC, "[0-9]+")))

正确的页码应该是 22、25、50 和 65。我应该如何解决这个问题?

【问题讨论】:

  • 几个cmets:(1)如果使用library(tidyverse),则不需要library(stringr); (2) 最好不要使用df作为变量名,以免与同名函数混淆。
  • 你快到了..你只需要在你的正则表达式中使用$ 来指示字符串的结尾。 df %&gt;% mutate(page = as.numeric(str_extract(ToC, "[0-9]+$")))
  • 好的。谢谢你,罗纳克沙阿!

标签: r tidyverse stringr stringi


【解决方案1】:

试试这个(行尾的数字):

df %>% 
  mutate(page = as.numeric(str_extract(ToC, "\\d+$")))

【讨论】:

  • 这太棒了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多