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

时间:2018-09-17 16:31:52

标签: r fixed-width

我有一个固定宽度的文件,该文件分为8个部分,需要将Row绑定在一起。问题是8个部分中有5个有一个额外的列需要删除。

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

我想遍历文件,如果一行中的字符数正确(177),则使用正确的列宽,否则使用错误的列宽

我尝试使用

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

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

因此,我正在寻找一种无需格式化即可读取文件并计算第一行字符数的方法。

1 个答案:

答案 0 :(得分:1)

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

filelist <- dir(pattern='txt$')
for (i in filelist) {
    if (nchar(readLines(i, n=1) == 177)
        print('correct')
    else
        print('incorrect')
}