0

我有一堆需要阅读的 csv 文件。每个文件都有一个页眉,大多数有页脚,一半有列标题,偶尔出现在文件正文中。我想删除页眉、页脚和零星的列标题。

我在几乎所有的问题和答案中都包含了可重复的示例,但在这种情况下,由于我正在阅读外部文件,我不知道该怎么做。

每个标题是三行长。我可以使用以下行(使用“跳过”)删除标题:

d <- read.csv('c:/users/mark w miller/simple R programs/data_with_header_footer.csv', header=T, skip=2)

页眉和页脚之间的行数因文件而异。但是,页脚始终以“符号:”行开头。页脚的第一行仅占据该行的第一个单元格。页脚中的行数因文件而异。

某些文件在文件正文中具有零星的列标题。第一行以表号开头,例如“表 4.3-1”。这些零星标题的最后一行总是以类似以下内容开头:'Number_reporting''Year 1''Area 1''Area 2''Year 2''Area 1''Area 2'。

如何删除这些页脚和零星的列标题?我不希望手动编辑每个文件,因为有大量文件并且手动删除大量行时可能会出现错误。

感谢您的任何建议。

4

1 回答 1

3

您可以将readLinesthengrep用于相关的页脚和列标题。没有更具体的例子,很难举个例子。

dum.data<-readLines('some.txt')
dum.data<-dum.data[-c(1:3)]

if(length(grep("Symbols:",dum.data))>0){
dum.data<-dum.data[-c(grep("Symbols:",dum.data):length(dum.data))]
}

if(length(grep("Table[0-9].[0-9]".dum.data))>0){
dum.data<-dum.data[-c(grep("Table[0-9].[0-9]".dum.data):app.marker)]
}

app.marker 将是您的零星标头末尾的合适 grep,这是非常模糊的。一旦这些被删除,您可以根据需要处理用逗号等分割的其余部分。

于 2012-06-15T21:12:50.117 回答