MrM*_*Bum 2 regex string r tidyr
所有,我搜索过,找不到如何做到这一点的答案.我对R比较新,并且之前没有使用常规表达式,但基本上我有一些数据放入这样的字段:
"#Route - 6 #Category - PARKING #Details - Parking issues#Result - MOVED ON #Vehicle Type - Mercedes "
Run Code Online (Sandbox Code Playgroud)
我基本上希望能够将字符串拆分为不同的元素,因此#之后的每个类别都有自己的列.
我尝试使用tidyr包并且最初尝试过:
string %>% separate(Description, into = c("Route","Details","Result","License No",
"Vehicle Desciption"),
sep = "\n#", remove =F, extra = "drop")
Run Code Online (Sandbox Code Playgroud)
但实现我只想要" - "之后的数据.我尝试在代码中插入" - "但它不起作用.有谁知道如何在" - "和"#"之间理想地分割字符串.
非常感谢
在一行中:
> gsub("^\\s+|\\s+$","",gsub(".*?[-]","",unlist(strsplit(str,"#"))))
[1] "" "6" "PARKING" "Parking issues" "MOVED ON" "Mercedes"
Run Code Online (Sandbox Code Playgroud)
或者分开以便更好地理解:用"#"打破字符串:
a = unlist(strsplit(str,"#"))
Run Code Online (Sandbox Code Playgroud)
删除" - "之前的内容
b = gsub(".*?[-]","",a)
Run Code Online (Sandbox Code Playgroud)
删除前导和尾随空格:
gsub("^\\s+|\\s+$","",b)
Run Code Online (Sandbox Code Playgroud)