“…”的正则表达式&引用;在R
我正在为俄亥俄州东北部的选举结果设置一个刮板。对于大多数县来说,选举结果看起来很像: 所以,我想做的是能够拿出候选人的名字,然后计票。但是,我很难弄清楚如何让R解析正则表达式的不同部分,特别是名称和投票数之间任意数量的空格和句点 因此,如果我插入此选项,它将起作用:“…”的正则表达式&引用;在R,r,regex,R,Regex,我正在为俄亥俄州东北部的选举结果设置一个刮板。对于大多数县来说,选举结果看起来很像: 所以,我想做的是能够拿出候选人的名字,然后计票。但是,我很难弄清楚如何让R解析正则表达式的不同部分,特别是名称和投票数之间任意数量的空格和句点 因此,如果我插入此选项,它将起作用: tblair <- lapply(mytxtfiles, function(i) { j <- paste0(scan(i, what = character()), collapse = " ") regmat
tblair <- lapply(mytxtfiles, function(i) {
j <- paste0(scan(i, what = character()), collapse = " ")
regmatches(j, gregexpr("(?<=Blair, Sr.. . . . . . . ).*?(?=\n* )",
j, perl=TRUE))
})
tblair从以下内容开始:
x <- c("Thomas F. Blair, Sr.. . . . . . . 173 18.23",
"Vicki L. Blair. . . . . . . . . 120 12.64",
"Ann Therese Bullard . . . . . . . 140 14.75",
"Bonnie Lou Richards . . . . . . . 171 18.02",
"Craig Ronyak . . . . . . . . . 168 17.70",
"Ruth V. Spanos. . . . . . . . . 177 18.65")
不清楚预期的str1您可以尝试另一种策略:将其视为固定宽度的文件,然后修剪句点和空格。预期的结果是什么?尝试regmatches(j,gregexpr(“Blair,Sr\\\\.[\\s.]*\\K.*(?=\\R*)”,j,perl=TRUE))
甚至可以。这很有效!谢谢
tblair <- lapply(mytxtfiles, function(i) {
j <- paste0(scan(i, what = character()), collapse = " ")
regmatches(j, gregexpr("(?<=Blair, Sr.(\\s\\.)*).*?(?=\n* )", j, perl=TRUE))
})
x <- c("Thomas F. Blair, Sr.. . . . . . . 173 18.23",
"Vicki L. Blair. . . . . . . . . 120 12.64",
"Ann Therese Bullard . . . . . . . 140 14.75",
"Bonnie Lou Richards . . . . . . . 171 18.02",
"Craig Ronyak . . . . . . . . . 168 17.70",
"Ruth V. Spanos. . . . . . . . . 177 18.65")
library(tidyverse)
data.frame(x) %>%
extract(x, into = c("Person", "Count", "Percent"),
regex = "(.*)\\s+(\\d+)\\s+(\\d.*)", convert = TRUE) %>%
mutate(Person = trimws(gsub("\\. .*$", "", Person)))
# Person Count Percent
# 1 Thomas F. Blair, Sr. 173 18.23
# 2 Vicki L. Blair 120 12.64
# 3 Ann Therese Bullard 140 14.75
# 4 Bonnie Lou Richards 171 18.02
# 5 Craig Ronyak 168 17.70
# 6 Ruth V. Spanos 177 18.65