计算R中的结束标记

问题描述:

我有一串句子,并且想要统计所有我认为是结束标记的东西。计算R中的结束标记

那些结束标记包括:。 ? ! * _

[这么一个句号,问号,叹号,星号或下划线]

我想用基地R.因此,例如,下面的字符串将有一个算这些事件的最快方法6.

x <- "I like to play. Do you? Yes I do! Go* I didn't say it, but will. I wanted to but_" 

计数和这个字符串将有4计数:

y <- "I like it! Do you? Look* Where are you go_" 

解决方案应该使用base R,因为这是用于包的。先谢谢你。

我不知道这是否是最快方式,但很容易:

> x <- "I like to play.  Do you?  Yes I do!  Go*  I didn't say it, but will. I wanted to but_" 
> y <- "I like it!  Do you?  Look*  Where are you go_" 
> 
> length(gregexpr("[.?!*_]", x)[[1]]) 
[1] 6 
> length(gregexpr("[.?!*_]", y)[[1]]) 
[1] 4 

最新通报

gregexpr回报-1如果没有比赛,所以你需要检查一下。这将是正确的:

sum(gregexpr("[.?!*_]", x)[[1]] > 0) 
+0

我刚刚尝试过,效果很好。为了我的目的,它非常快。我会尽快接受。谢谢+1 – 2012-03-26 06:55:16

+0

除此之外,您可以一次执行它们:sapply(gregexpr(“[。?!* _]”,c(x,y)),长度)。 – 2012-03-26 06:57:01

+1

@TylerRinker请找我的更新。 – kohske 2012-03-26 07:02:52

签出stringr ::: string_count。在包中导入其他有用的函数是公平的。