在处理数据文件之前读取固定宽度文件中的字符数

问题描述 投票:1回答:1

我有一个固定宽度的文件,分为8个部分,需要行绑定在一起。问题是,8个部件中有5个部件需要额外的柱子才能拆除。

我有一个正确的列宽和不正确的列宽的数字向量

我想遍历文件,如果它在一行(177)中有正确的字符数,那么使用正确的列宽,否则使用不正确的列宽

我试过用了

sum(nchar(read_fwf(file,fwf_widths(correct_vector)))

但是当我使用read_fwf(和read.fwf)拉入文件时,它会格式化列,并且列中的字符数不等于非格式化版本中的字符数。例如,由于缺少填充零或NA不计数,它显示135而不是177个字符。

所以我正在寻找一种方法来读取文件并计算第一行中没有格式化的字符数。

r fixed-width
1个回答
1
投票

您可以使用readLines读取每个文件的第一行,并使用nchar检查其长度。

filelist <- dir(pattern='txt$')
for (i in filelist) {
    if (nchar(readLines(i, n=1) == 177)
        print('correct')
    else
        print('incorrect')
}
© www.soinside.com 2019 - 2024. All rights reserved.