我有一个带有几列的CSV文件:Tweet,日期等。某些Tweet中的空格导致空行和不希望的截断行。
有效:1.使用记事本++的功能“行操作>删除空行(包含空白字符)”2.搜索并替换:\r
不包含任何内容。
但是,我需要对大量文件执行此操作,并且我无法在R中使用gsub()查找正则表达式来执行Notepadd ++函数的工作。
请注意,不使用^[ \t]*$\r?\n
替换任何内容,然后不使用\r
替换任何内容在Notepad ++中起作用,但在R中则不起作用,如建议的here一样,但不适用于R中的g(sub)。
我尝试了以下代码:
tx <- readLines("tweets.csv")
subbed <-gsub(pattern = "^[ \\t]*$\\r?\\n", replace = "", x = tx)
subbed <-gsub(pattern = "\r", replace = "", x = subbed)
writeLines(subbed, "output.csv")
这是输入:
这是所需的输出:
您可以使用
tx <- readLines(PATH_TO_FILE)
headers <- tx[1]
data <- grep("^\\w{3} \\w{3} \\d{2} \\d{2}:\\d{2}:\\d{2}.*", tx[-1], value=TRUE)
recombined <- c(headers, data)
recombined
请参见R demo,带有以下示例输入:
tx <- c("Col1 Col2 Col3 ....",
"Mon Jan 06 21:12:34 +000000 Line 1",
"Mon Jan 06 21:12:34 +000000 Line 2",
"",
" ",
"Mon Jan 06 21:12:34 +000000 Line 3",
"\t\n\t\r ")
输出为
[1] "Col1 Col2 Col3 ...." "Mon Jan 06 21:12:34 +000000 Line 1"
[3] "Mon Jan 06 21:12:34 +000000 Line 2" "Mon Jan 06 21:12:34 +000000 Line 3"