使用reg ex读取文件时跳过行

使用reg ex读取文件时跳过行,r,read.csv,R,Read.csv,我有类似内容的文件 !software version: $Revision$ !date: 07/06/2016 $ ! ! from Mouse Genome Database (MGD) & Gene Expression Database (GXD) ! MGI 我正在使用read.csv读取文件。但我需要跳过开头带“!”的行。如何实现这一点?它所基于的read.csv函数和read.table有一个名为comment.char的参数,可用于指定一个字符,如果看到该字符,将忽

我有类似内容的文件

!software version: $Revision$
!date: 07/06/2016 $ 
!
! from Mouse Genome Database (MGD) & Gene Expression Database (GXD)
!
MGI

我正在使用read.csv读取文件。但我需要跳过开头带“!”的行。如何实现这一点?

它所基于的
read.csv
函数和
read.table
有一个名为
comment.char
的参数,可用于指定一个字符,如果看到该字符,将忽略该行的其余部分。将其设置为“!”可能足以满足您的需要


如果您确实需要正则表达式,那么最好的方法是使用
readLines
(或类似函数)读取文件,然后将正则表达式应用于字符串的结果向量,以放入不需要的元素(行),然后将结果传递给
text
参数以
read.table
(或使用文本连接)。

它所基于的
read.csv
函数和
read.table
有一个名为
comment.char
的参数,可用于指定一个字符,如果看到该字符,该字符将忽略该行的其余部分。将其设置为“!”就足够了


如果您确实需要正则表达式,那么最好的方法是使用
readLines
(或类似函数)读取文件,然后将正则表达式应用于字符串的结果向量,以放入不需要的元素(行),然后将结果传递给
text
参数以
read.table
(或使用文本连接)。

要计算不以
开头的第一行

to_skip <- min(grep('^[^!]', trimws(readLines('file.csv'))))

df <- read.csv('file.csv', skip = to_skip)

to_skip计算不以
开头的第一行!

to_skip <- min(grep('^[^!]', trimws(readLines('file.csv'))))

df <- read.csv('file.csv', skip = to_skip)

要跳过,您可以设置
skip
参数,但它只需要一个整数行就可以跳过。您可以使用
readLines
grep
来计算这个数字,如果您是通过编程方式或大量使用,但在其他情况下,只需查看文件可能是最容易的。我有多个文件,并且在所有方面都不一致他归档。有时是12,有时是45。这就是我不能使用Skipy的原因。你可以使用中的一个答案来确定哪些行以
开头,然后在此基础上使用
read.csv
skip
参数。你可以设置
skip
参数,但它只需要一个整数行就可以跳过。你可以计算t如果你是以编程方式或大量使用,则使用
readLines
grep
的帽子编号,但除此之外,只查看文件可能是最简单的。我有多个文件,并且在所有文件中都不一致。有时是12,有时是45。这就是为什么我不能使用Skipy。你可以使用其中一个答案来确定是哪个文件h行以
开头,然后在此基础上使用
read.csv
skip
参数。