Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/70.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
R 按列的开头对列中的字符串值进行分组_R_Dataframe_Grouping - Fatal编程技术网

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