R:读取 csv 文件时删除页眉、页脚和零星的列标题
Posted
技术标签:
【中文标题】R:读取 csv 文件时删除页眉、页脚和零星的列标题【英文标题】:R: removing header, footer and sporadic column headings when reading csv file 【发布时间】:2012-06-15 20:44:43 【问题描述】:我有一堆 csv 文件需要阅读。每个文件都有一个页眉,大多数有页脚,一半有列标题,偶尔出现在文件正文中。我想删除页眉、页脚和零星的列标题。
我在几乎所有的问题和答案中都包含了可重复的示例,但在这种情况下,由于我正在阅读外部文件,因此我不知道该怎么做。
每个标题是三行长。我可以使用以下行(使用“跳过”)删除标题:
d
页眉和页脚之间的行数因文件而异。但是,页脚始终以“符号:”行开头。页脚的第一行仅占据该行的第一个单元格。页脚中的行数因文件而异。
某些文件在文件正文中有零星的列标题。第一行以表号开头,例如“表 4.3-1”。这些零星标题的最后一行总是以以下内容开头:'Number_reporting''Year 1''Area 1''Area 2''Year 2''Area 1''Area 2'。
如何删除这些页脚和零星的列标题?我不希望手动编辑每个文件,因为文件很多,手动删除很多行时可能会出现错误。
感谢您的任何建议。
【问题讨论】:
【参考方案1】:您可以使用readLines
然后grep
作为相关的页脚和列标题。没有更具体的例子,很难举个例子。
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 用于您的零星标题的结尾,这是非常模糊的。删除这些后,您可以根据需要处理用逗号等分隔的其余部分。
【讨论】:
以上是关于R:读取 csv 文件时删除页眉、页脚和零星的列标题的主要内容,如果未能解决你的问题,请参考以下文章