不能用R删除txt文件中的空行

时间:2016-06-13 09:24:31

标签: r text gsub blank-line

我正在使用R进行文本分析,并且需要将句子的第一个字母转换为小写,同时保持其他大写单词的方式。所以我使用了命令

     x <- gsub("(\\..*?[A-Z])", '\\L\\1', x, perl=TRUE)

哪个有效但部分有效。问题是,对于文本分析,我必须将pdf文件转换为txt格式,现在txt文件包含许多空行(分页符,可能返回),因此我使用的命令不转换大写字母出现在新行上。我试图在 gsub 中使用不同的组合消除空行,其中包含\ r,\ n但是没有任何效果。当我执行tm-package的inspect(x)时,输出以下列方式显示:

[346]                                                                                                                                                                                                                                                  
[347]    Thank you.                                                                                                                                                                                                                                    
[348]                                                                                                                                                                                                                                                  
[349]    Vice President of Investor Relations                                                                                                                                                                                               
[350]   

如果有人能帮助我,我将不胜感激!

2 个答案:

答案 0 :(得分:3)

给定输出,空行似乎是字符向量中的单独字符串。您需要使用grep

过滤掉这些内容
empty_lines = grepl('^\\s*$', x)
x = x[! empty_lines]

然后您可以执行后续分析,但您可能仍需要首先连接这些行以获取单个字符串:

x = paste(x, collapse = '\n')

答案 1 :(得分:1)

您可以使用^[A-Z]获取新行,并使用或符号|

分隔这两个案例
x <- gsub("(\\..*?[A-Z]|^[A-Z])", '\\L\\1', x, perl=TRUE)

您可以使用

在上述步骤之前或之后删除空行
x <- x[x != ""]