2015-01-05 29 views
1

我的標準筆記本電腦上的任何文本編輯器中都有大量的CSV文件,無法打開。但是,我可以將文件導入R和子集中以供使用...但我無法查看CSV中的註釋。根據與CSV相關的自述文件,在評論中有關於數據版本的重要信息。信息標題行以'#%'開頭,註釋以'##'開始。我想,如果我只能查看以'#'開頭的前20行代碼,我將能夠提取我需要的信息。查看來自R中巨大CSV文件的評論

對於我來說,grep和head的R幫助文檔還不清楚,但是我確實找到了一個很好的網站來描述如何在Unix中執行我想要的操作(這裏是:http://bconnelly.net/working-with-csvs-on-the-command-line/)。

用於打印以「#」開始的所有行的Unix程序代碼:grep的「#」 input.csv

誰能告訴我如何做到這一點的R'或者至少如何在第一行20行中打印以'#'開頭的行?

+0

這幾乎肯定值得檢查csv文件中的行數和R加載的行數。您不指定如何加載數據,但read.csv有一個選項comment.char來指定註釋字符。請參閱?read.csv –

+6

'grep(「^#」,readLines(「filename.csv」),value = TRUE)' – hrbrmstr

+0

@hrbrmstr的評論是正確的答案。使用'readlines'避免了使用行長度和註釋字符時潛在的打嗝,例如'read.table' –

回答

5

一個初始的「R」的方式來做到這一點是:

grep("^#", readLines("filename.csv"), value=TRUE) 

由於本Bolker指出的那樣,你可以添加一個限制readLines防止[R從創建一個潛在的大,臨時對象:

grep("^#", readLines("filename.csv", n=20), value=TRUE) 

奔還指出,如何使用Unix的grep(如果那是可用的有問題的系統上)做:

readLines(pipe(system('grep "^#" input.csv')))