Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.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
String 在R中拆分的特定字符串_String_R - Fatal编程技术网

String 在R中拆分的特定字符串

String 在R中拆分的特定字符串,string,r,String,R,我想在R中拆分一个文本字符串,但我想考虑一些方面。例如,如果字符串有一个点或,我希望函数将它们作为拆分列表的元素。下面是我想要得到的一个例子 mytext="Caracas. Montevideo! Chicago." split= "Caracas", "." ,"Montevideo", "!", "Chicago", "." 我目前的方法是用内置的R函数gsubthe“.by.”替换前面的函数,然后我也使用strsplit函数 mytext=gsub("\\.",

我想在R中拆分一个文本字符串,但我想考虑一些方面。例如,如果字符串有一个点
,我希望函数将它们作为拆分列表的元素。下面是我想要得到的一个例子

  mytext="Caracas. Montevideo! Chicago."  
  split= "Caracas", "." ,"Montevideo", "!", "Chicago", "."    
我目前的方法是用内置的R函数
gsub
the“.by.”替换前面的函数,然后我也使用strsplit函数

  mytext=gsub("\\."," .",mytext)
  mytext=gsub("\\!"," !",mytext)
  unlist(strsplit(mytext,split=' '))
因此,我的问题是:是否有其他方法来实现这一点,通过配置
strsplit
函数的参数,或者其他您认为更有效的方法


任何帮助或建议都将不胜感激。

展望未来是您在这里寻找的:

strsplit(mytext, split = "(?=(\\.|!))", perl = TRUE)
#[[1]]
#[1] "Caracas"     "."           " Montevideo" "!"           " Chicago"    "." 

eddi的解决方案不会分割空白。试试这个:

> regmatches(mytext, gregexpr(text=mytext, pattern="(?=[\\.\\!])|(?:\\s)", perl=T), invert=T)
[[1]]
[1] "Caracas"    "."          "Montevideo" "!"          "Chicago"    "."   

值得明确指出的是,
perl
标志对于R中的look aheads至关重要