【发布时间】:2020-01-07 21:08:54
【问题描述】:
我正在尝试使用readr 的read_fwf 解析固定宽度的.txt 文件。大约有 150 万个观测值和大约 150 万个观测值。其中 550 个缺少 60 个变量中的最后 25 个。这种遗漏会导致对这些观察结果所具有的最终变量(下例中的“描述”)的不完美解析,并使数据框没有这些部分填充的列。
例如,
df_baseline <- read_fwf(file = file, fwf_widths(fwf_widths, fwf_names),
col_types = col_types, trim_ws = T) %>%
mutate_all(na_if, "")
Warning: 1148 parsing failures.
row col expected actual file
300495 description 240 chars 102 '/path/to/my/file/filename.txt'
300495 NA 59 columns 31 columns '/path/to/my/file/filename.txt'
500245 description 240 chars 56 '/path/to/my/file/filename.txt'
500245 NA 59 columns 31 columns '/path/to/my/file/filename.txt'
500333 description 240 chars 33 '/path/to/my/file/filename.txt'
See problems(...) for more details.
col_types 是一串由 60 个 'c' 符号组成的字符串,因此所有列都作为字符读入。 fwf_widths 和 fwf_names 是建议的列宽和列标题的适当规范。
我了解,在 df 的最后一列中缺少值,我违反了文档的“固定宽度”性质。
有没有办法可以 1) 获取 read_fwf 以保留这些部分填充的行?
2)如果不是,我怎么能读到这个txt文件,因为99%的文件都可以按照正常的FWF解析?
【问题讨论】:
-
如果您包含一个简单的reproducible example 以及可用于测试和验证可能的解决方案的示例输入,则更容易为您提供帮助。