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 文件时删除页眉、页脚和零星的列标题的主要内容,如果未能解决你的问题,请参考以下文章

使用具有通用页眉/页脚和分页的 WeasyPrint 生成 PDF

reportlab 中的多行(段落)页脚和页眉

在单个单元格中显示页眉页脚和单元格?

markdown 页眉页脚和溢出内容

滚动 tableView 部分的页脚和页眉

实现固定页眉和滚动,页脚和移动问题