在R中查看巨型CSV文件中的注释

在R中查看巨型CSV文件中的注释,r,unix,csv,R,Unix,Csv,我有一个巨大的CSV文件,它太大了,无法在标准笔记本电脑上的任何文本编辑器中打开。但是,我可以将文件导入R和子集以供使用。。。但我无法在CSV中查看评论。根据CSV相关自述文件,注释中包含有关数据版本的基本信息。信息标题行以“#%”开头,注释以“##”开头。我想如果我能查看以“#”开头的前20行代码,我就能提取出我需要的信息 grep和head的R帮助文档对我来说并不清楚,但我确实找到了一个很好的网站,描述了如何在Unix中实现我想要的功能(这里:) 用于打印以“#”开头的所有行的Unix代码是

我有一个巨大的CSV文件,它太大了,无法在标准笔记本电脑上的任何文本编辑器中打开。但是,我可以将文件导入R和子集以供使用。。。但我无法在CSV中查看评论。根据CSV相关自述文件,注释中包含有关数据版本的基本信息。信息标题行以“#%”开头,注释以“##”开头。我想如果我能查看以“#”开头的前20行代码,我就能提取出我需要的信息

grep和head的R帮助文档对我来说并不清楚,但我确实找到了一个很好的网站,描述了如何在Unix中实现我想要的功能(这里:)

用于打印以“#”开头的所有行的Unix代码是:grep“#”input.csv

谁能告诉我在R怎么做?或者至少如何打印前20行以“#”开头的行?

一种初始的“R”方法是:

grep("^#", readLines("filename.csv"), value=TRUE)
正如Ben Bolker所指出的,您可以为
读线
添加一个限制,以防止R创建一个潜在的大型临时对象:

grep("^#", readLines("filename.csv", n=20), value=TRUE)
Ben还指出了如何使用Unix
grep
(如果相关系统上有此功能):

一种最初的“R”方式是:

grep("^#", readLines("filename.csv"), value=TRUE)
正如Ben Bolker所指出的,您可以为
读线
添加一个限制,以防止R创建一个潜在的大型临时对象:

grep("^#", readLines("filename.csv", n=20), value=TRUE)
Ben还指出了如何使用Unix
grep
(如果相关系统上有此功能):


几乎可以肯定,检查csv文件中的行数以及R加载的行数是值得的。您不指定如何加载数据,但read.csv有一个选项comment.char来指定注释字符。请参阅?read.csv
grep(“^#”),readLines(“filename.csv”),value=TRUE)
@hrbrmstr的评论是正确的答案。使用
readlines
可以避免使用时可能遇到的行长和注释字符的问题,例如,
read.table
我不清楚您有什么操作系统,但可能
readlines(管道(系统('grep“#”input.csv'))
?@hrbrmstr,将您的注释作为答案发布?如果OP希望避免将整个文件再次读取到内存中,则可能值得包括
n=20
。几乎可以肯定,检查csv文件中的行数以及R加载的行数是值得的。您不指定如何加载数据,但read.csv有一个选项comment.char来指定注释字符。请参阅?read.csv
grep(“^#”),readLines(“filename.csv”),value=TRUE)
@hrbrmstr的评论是正确的答案。使用
readlines
可以避免使用时可能遇到的行长和注释字符的问题,例如,
read.table
我不清楚您有什么操作系统,但可能
readlines(管道(系统('grep“#”input.csv'))
?@hrbrmstr,将您的注释作为答案发布?如果OP希望避免再次将整个文件读入内存,则可能值得包括
n=20
。。。