我正在尝试使用readr
's解析固定宽度的 .txt 文件read_fwf
。大约有 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 进行解析?