繁体   English   中英

R数据从结构化文件导入

[英]R data Import from a structured file

我有一个如下所示的txt文件:

year 1: ...
year 2: ...
....
....
[data]
1,2,3,4
3,4,5
3,5,6,7,8,9
...

所以基本上它会在[data]行之前有n行,而数据行下面的是我想读的内容。

我知道我可以手动删除标题,但如果我能让R检测到关键字[data]并读取之后的内容,那将是理想的。

有什么建议?

此外,正如您所看到的,我在每行上都有不同数量的变量用于实际数据。
有没有办法读取它,以保持线分离?

一种方法:

csvAfter <- function(file, marker="[data]", blank.lines.skip=FALSE) {
  lines <- readLines(file)
  i <- match(marker, lines)
  if (is.na(i)) {
    warning("Didn\'t find ", marker)
    return(NULL)
  }
  f <- textConnection(paste(lines[-(1:i)], collapse="\n"))
  on.exit(close(f), add=TRUE)
  return(read.csv(f, header=FALSE, fill=TRUE,
                  blank.lines.skip=blank.lines.skip))
}

例:

r <- "year 1: ...
year 2: ...
....
....
[data]
1,2,3,4
3,4,5
3,5,6,7,8,9"
print(csvAfter(textConnection(r)))

上述答案非常适合自动检测标志“[data]”,这将使其适用于数据前具有不同行数的输入文件。

如果您只需要执行此操作,则可以在read.csv或read.table的调用中包含“skip =”

例如,read.table(file,skip = n)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM