我有一个我想要处理的文本文件。然而,在我获得要导入的数据集之前,我想要删除一大堆文本。我要删除的文本的每一行都以@符号开头,但可以有不同数量的预数据文本行。如何删除此预数据文本。例如:
@HD VN:1.0 SO:unsorted
@SQ SN:chr1 LN:249250621
@SQ SN:chr2 LN:243199373
@SQ SN:chr3 LN:198022430
@SQ SN:chr4 LN:191154276
@SQ SN:chr5 LN:180915260
@SQ SN:chr6 LN:171115067
@SQ SN:chr7 LN:159138663
@SQ SN:chr8 LN:146364022
@SQ SN:chr9 LN:141213431
@SQ SN:chr10 LN:135534747
@SQ SN:chr11 LN:135006516
@SQ SN:chr12 LN:133851895
@SQ SN:chr13 LN:115169878
@SQ SN:chr14 LN:107349540
@SQ SN:chr15 LN:102531392
@PG ID:Bowtie VN:1.1.0
Number chr locus
1 1 10092
2 12 12313
答案 0 :(得分:4)
如果您不想保留“@”的实例,可以将“@”设置为注释字符以跳过这些行
read.table("data.txt", comment="@", header=T)
答案 1 :(得分:2)
两种快速方法:
wholeFile <- readLines('user3632206.csv')
partialFile <- wholeFile[! grepl('^@', wholeFile)]
parsedFile <- read.table(textConnection(partialFile), header = TRUE)
parsedFile
## Number chr locus
## 1 1 1 10092
## 2 2 12 12313
在命令行中,使用grep
(MacOS中的本机和unix,可以在包括cygwin,msys,msys2等在内的多个软件包中找到Windows):
bash$ grep -v '^@' user3632206.csv > user3632206-filtered.csv
在R:
parsedFile <- read.table('user3632206-filtered.csv', header = TRUE)
parsedFile
## Number chr locus
## 1 1 1 10092
## 2 2 12 12313