在R中将字符串拆分为100个字的部分

时间:2014-04-07 11:09:56

标签: string r split

如何将一个巨大的“字符”拆分成较小的字符,每个字符包含100个单词。 例如,这就是我过去用单个词分割它的方式。

myCharSplitByWords <- strsplit(myCharUnSplit, " ")[[1]]

我认为这可以通过正则表达式完成(可能选择第100个空格或smth),但无法写出正确的表达式

我是R的新手,我完全陷入困境。感谢

2 个答案:

答案 0 :(得分:6)

也许有一种方法可以使用正则表达式,但在strsplit之后,通过&#34; hand&#34;

组合单词会更容易
## example data
set.seed(1)
string <- paste0(sample(c(LETTERS[1:10], " "), 1e5, replace=TRUE), collapse="")

## split if there is at least one space
words <- strsplit(string, "\\s+")[[1]]

## build group index
group <- rep(seq(ceiling(length(words)/100)), each=100)[1:length(words)]

## split by group index
words100 <- split(words, group)

答案 1 :(得分:0)

你可以通过以下方式获得一系列空格的每100个实例(如果这是你对单词的定义):

ind<-  gregexpr("([^ ]+? +){100}", string)[[1]]

然后通过

对原始子字符串进行子串
hundredWords <- substr(string, ind, c(ind[-1]-1, nchar(string))

这会在每个条目的末尾留下尾随空格,最后一个条目不一定有100个条目,但是在删除100个批次后会剩下剩余的单词。如果你有另一个单词分隔符的定义(标签,标点符号,...)然后发布,我们可以相应地更改正则表达式。