正则表达式 – 在R中组合字符向量中的行

前端之家收集整理的这篇文章主要介绍了正则表达式 – 在R中组合字符向量中的行前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
R中有一个约50,000行的字符向量(内容).但是,从文本文件读入的某些行在不同的行上,不应该是.具体来说,线条看起来像这样:

[1] hello,[2] world
[3] ""
[4] how
[5] are 
[6] you
[7] ""

我想组合这些线条,以便我有一些看起来像这样的东西:

[1] hello,world
[2] how are you

我试过写一个for循环:

for(i in 1:length(content)){
    if(content[i+1] != ""){
        content[i+1] <- c(content[i],content[i+1])
    }
}

但是当我运行循环时,我收到一个错误:缺少需要TRUE / FALSE的值.

任何人都可以建议一个更好的方法来做到这一点,甚至可能甚至不使用循环?

谢谢!

编辑:
我实际上试图将其应用于每个都有数千行的文档语料库.关于如何将这些解决方案转换为可应用于每个文档内容功能的任何想法?

解决方法

我认为有更优雅的解决方案,但这可能对您有用:

chars <- c("hello,","world","","how","are","you","")
###identify groups that belong together (id increases each time a "" is found)
ids <- cumsum(chars=="")

#split vector (an filter out "" by using the select vector)
select <- chars!=""
splitted <- split(chars[select],ids[select])

#paste the groups together
res <- sapply(splitted,paste,collapse=" ")

#remove names(if necessary,probably not)
res <- unname(res) #thanks @Roland

> res
[1] "hello,world" "how are you"

猜你在找的正则表达式相关文章