R 按列的开头对列中的字符串值进行分组
我有一个数据帧:R 按列的开头对列中的字符串值进行分组,r,dataframe,grouping,R,Dataframe,Grouping,我有一个数据帧: ID value 1 request body: <?xml version="2.0"> values received 2 request body: <code> 'jnwg3425' 3 request body: <?xml version="2.0", <PlatCode>, <code> 'qwefn2' 4 Error in mes
ID value
1 request body: <?xml version="2.0"> values received
2 request body: <code> 'jnwg3425'
3 request body: <?xml version="2.0", <PlatCode>, <code> 'qwefn2'
4 Error in message received
5 Error in message received
6 Push forward message x3535
7 Push forward message <MarkCheckMSG>
我怎么能这么做?什么方法更适合我的目标?我应该使用正则表达式还是字符串距离方法?首先,我们使用
stringr::stru extract
提取前3个单词或紧跟:
,或者您可以使用sub
匹配完整的值,只捕获给定的表达式,即sub('^(expre).+$,'\\1',value)
,正则表达式模式如下\w+\w+(:|\w+
,即匹配两个单词\w+\w+
,然后匹配:
或另一个单词
库(stringr)
df%>%
突变(开始=str_提取(值,\\w+\\w+(:|\\w+)))%>%
分组人(开始)
#一个tible:7 x 3
#组:开始[3]
ID值开始
1 1请求正文:收到的值请求正文:
2请求正文:jnwg3425请求正文:
请求正文:谢谢,如果我有一行具有唯一值,比如。它将在列开始处返回NA,而不是您可以添加另一个mutate
,再加上一个if_else
,或者将此
添加到正则表达式中。请注意,由于R
的原因,您需要转义“`like this:\\w+\\w+(:|\\w+)”?例如\\w+\\w+(:|\\w+)
,我如何不仅为字符串编写正则表达式,而且为诸如*之类的符号编写正则表达式?
patterns
request body:
Error in message received
Push forward message
# A tibble: 7 x 3
# Groups: beginnings [3]
ID value beginnings
<int> <fct> <chr>
1 1 request body: <?xml version=2.0> values received request body:
2 2 request body: <code> jnwg3425 request body:
3 3 request body: <?xml version=2.0, <PlatCode>, <code> qwefn2 request body:
4 4 Error in message received Error in message
5 5 Error in message received Error in message
6 6 Push forward message x3535 Push forward message
7 7 Push forward message <MarkCheckMSG> Push forward message