Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在R中的某个单词后创建新列_Regex_R_String Split - Fatal编程技术网

Regex 在R中的某个单词后创建新列

Regex 在R中的某个单词后创建新列,regex,r,string-split,Regex,R,String Split,我有如下数据列: adrs <- data.frame(address=rbind(c("CONFIDENTIST s.r.o. Ul. pri,Panoráme 26 945 01 Komárno"), c("PD Dobrá Niva, a.s. Námestie,SNP 217/2 962 61 Dobrá Niva"))) adrs现在我可能在s.r.o.或a.s. strsplit(gsub("(.*(?:s\\.r\\.o\\.|

我有如下数据列:

adrs <- data.frame(address=rbind(c("CONFIDENTIST s.r.o. Ul. pri,Panoráme 26 945 01   Komárno"),
                   c("PD Dobrá Niva, a.s. Námestie,SNP 217/2 962 61   Dobrá Niva")))

adrs现在我可能在
s.r.o.
a.s.

strsplit(gsub("(.*(?:s\\.r\\.o\\.|a\\.s\\.))\\s+(.*)","\\1;\\2",adrs$address),";")

您可能希望研究正则表达式,但基于有限的测试数据,这是一项非常困难的任务。你需要非常明确地说明违反规则的情况。你需要非常非常清楚在文本中寻找什么来创建中断。当然,这就是我要解决的问题,如何定义中断规则。首先是在“a.s”和“s.r.o”之后,也可能是“962 61”再次出现。好吧,我们不能帮你。你需要了解你的数据。如果你的规则是“在s.r.o或a.s.之后分割”,那没关系。但您的示例数据还有其他拆分。你需要知道你想要拆分的每一个可能的单词,或者你想要拆分的字母/数字的模式。是的,我认为小规模的演示(不是完整的解决方案)会有助于你理解。如果我对你的两个样本行和输出数据做更多的假设,这甚至可能是一个更完整的版本:
strsplit(gsub()(s\\.r\\.o\\.|a\\.s\\)\\s+(.*)\\s+(\\d{3}\\d{2})\\s+(.*),“\\1\n\\2\n\\3\n\\4”,adrs$address),“\n”)
,但这是在做很多假设。
strsplit(gsub("(.*(?:s\\.r\\.o\\.|a\\.s\\.))\\s+(.*)","\\1;\\2",adrs$address),";")