我在R中使用LaF包来读取具有固定列宽的大文本文件。虽然用于读取逗号单独值文件的LaF函数确实提供了一个" skip"选项,我没有看到固定列宽文件的相同选项。
现在,我必须在能够读取大文本文件的编辑器中打开每个文本文件以删除前8行。它很麻烦,因为我必须等待文件加载,删除行,等待保存..
知道我怎么能直接用LaF做到这一点?现在,LaF会发送一条错误消息,因为它希望得到数字并接收我要删除的第一行的字符串。
任何绕过这个失踪的方法"跳过"选项?
以下是我用来读取文本文件的代码:
results <- laf_open_fwf("D:/Projects/TestProject4/Scenarios/output.txt",
column_types = c("string", "integer", "integer", "integer", "integer", "integer", "double", "double", "double"),
column_widths = c(5, 5, 9, 4, 3, 5, 13, 12, 12),
column_names = c("ID", "RCH", "GIS", "MONTH", "DAY", "YEAR", "AREAkm2", "FLOW_OUTcms"))
答案 0 :(得分:1)
对于那些感兴趣的人,解决方案是使用readr
包而不是LaF。
library(readr)
d <- read_fwf("yourfile.txt",
fwf_widths(c(5, 5, 9, ...),
c("ID", "COL1", "COL2", ...)),
skip = 10,
progress = interactive())