Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/77.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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_Regex_Delimiter_Tidyr - Fatal编程技术网

R中的正则表达式,用于检测保留分隔符的单个数字和两个数字

R中的正则表达式,用于检测保留分隔符的单个数字和两个数字,r,regex,delimiter,tidyr,R,Regex,Delimiter,Tidyr,我正在尝试使用tidy R包将行拆分为多行 这是我的数据集中的一个单元格 column 1 1. a 2. b 33. c df = separate_rows(df,`column 1`, sep = "(?=\\d[\\.]\\s)" 当我使用上述代码时: 我明白了 Actual Output | Desired Output 1. a | 1. a 2. b | 2. b 3 |

我正在尝试使用tidy R包将行拆分为多行

这是我的数据集中的一个单元格

column 1
 1. a
 2. b
33. c

df = separate_rows(df,`column 1`, sep = "(?=\\d[\\.]\\s)"
当我使用上述代码时:

我明白了

Actual Output  |  Desired Output
1. a           |      1. a
2. b           |      2. b  
3              |     33. c
3. c           |
你可以用

separate_rows(df,`column 1`, sep = "(?m)(?!\\A)(?=^\\d+\\.\\s)")
正则表达式详细信息

  • (?m)
    -
    ^
    现在匹配行位置的开始
  • (?!\A)
    -在字符串开头时导致匹配失败的负前瞻
  • (?=^\d+\.\s)
    -直接在当前位置右侧的正向前瞻,需要
    • ^
      -行的开头
    • \d+
      -1+位
    • \。
      -一个点
    • \s
      -空白

请提供一些可复制的数据。你是说这个吗
df%>%separate(column\u 1,into=c('v1','v2'),sep='))
或者,如果您只是拆分多行文本,请尝试使用
separate\u行(df,'column 1',sep=“(?m)(?!\\A)(?=^\\d+\\\.\\s)”)
修复您的方法。不,我正在尝试将一行拆分为多行。当我使用这个正则表达式“(?=\\d[\\.]\\s)”时,它能够检测带句点符号的单个数字,但当检测两个数字和一个句点时,它会将其分成两行。你可以通读(通过许多其他链接到伟大的在线资源)和所谓的社区帖子。还有,值得一看。基本的正则表达式课程可在以下网址获得:。