我有几个数据框,从一些文本开始。有时我需要的信息从第11行开始,有时它从第16行开始。它改变。所有数据框的共同之处在于有用的信息在标题为" location"的行之后开始。
我想循环删除有用信息上方数据框中的所有行(包括带有"位置"的行)。
答案 0 :(得分:2)
我猜你想要这样的东西:
readfun <- function(fn,n=-1,target="location",...) {
r <- readLines(fn,n=n)
locline <- grep(target,r)[1]
read.table(fn,skip=locline,...)
}
这是相当低效的,因为它读取数据文件两次(一次作为原始字符串,一次作为数据帧),但如果你的文件不是太大,它应该工作得相当好。 (@MrFlick在评论中指出,如果你对目标发生的距离有一个合理的上限,你可以设置n
,这样你就不必阅读整个文件了搜索目标。)
我不知道您的文件的任何其他详细信息,但使用"^location"
来识别开始与该字符串的行或其他更多信息可能会更安全具体目标......