Есть другой способ справиться с этим, а именно написать короткую функцию, которая принимает регулярные выражения, которые вы хотите отфильтровать. Вы можете указать ему имя файла, но если оно отсутствует, отобразится диалоговое окно файла:
read_broken <- function(file_path, filter_out = "^[*]NOTE:")
{
if(missing(file_path)) file_path <- file.choose()
x <- suppressWarnings(readLines(file_path))
x <- x[nzchar(x)]
x <- x[!apply(sapply(filter_out, grepl, x), 1, any)]
read.delim(text = x, header = TRUE, sep = "", quote = "", dec = ".", fill = TRUE)
}
Итак, вы можете сделать:
read_broken("myfile.txt")
#> ColumnA ColumnB ColumnC
#> 1 A2 17 14
#> 2 B2 20 -1
#> 3 C2 21 36
Или
read_broken("myfile.txt", filter_out = c("^[*]NOTE:", "A2"))
#> ColumnA ColumnB ColumnC
#> 1 B2 20 -1
#> 2 C2 21 36