在处理数据文件之前读取固定宽度文件中的字符数
read number of characters in a fixed width file before processing the data file
我有一个固定宽度的文件,它被分成 8 个部分,需要行绑定在一起。问题是 8 个部分中有 5 个有一个额外的列需要删除。
我有一个包含正确列宽和不正确列宽的数值向量
我想遍历文件,如果一行中的字符数正确 (177),则使用正确的列宽,否则使用不正确的列宽
我试过使用
sum(nchar(read_fwf(file,fwf_widths(correct_vector)))
但是当我使用 read_fwf
(和 read.fwf
拉入文件时),它格式化列并且列中的字符数不等于字符数在非格式化版本中。例如,由于缺少填充的零或 NA 不计算在内,它显示 135 个而不是 177 个字符。
所以我正在寻找一种方法来读取文件并计算第一行中的字符数而无需格式化。
您可以使用 readLines 读取每个文件的第一行并使用 nchar
检查其长度。
filelist <- dir(pattern='txt$')
for (i in filelist) {
if (nchar(readLines(i, n=1) == 177)
print('correct')
else
print('incorrect')
}
我有一个固定宽度的文件,它被分成 8 个部分,需要行绑定在一起。问题是 8 个部分中有 5 个有一个额外的列需要删除。
我有一个包含正确列宽和不正确列宽的数值向量
我想遍历文件,如果一行中的字符数正确 (177),则使用正确的列宽,否则使用不正确的列宽
我试过使用
sum(nchar(read_fwf(file,fwf_widths(correct_vector)))
但是当我使用 read_fwf
(和 read.fwf
拉入文件时),它格式化列并且列中的字符数不等于字符数在非格式化版本中。例如,由于缺少填充的零或 NA 不计算在内,它显示 135 个而不是 177 个字符。
所以我正在寻找一种方法来读取文件并计算第一行中的字符数而无需格式化。
您可以使用 readLines 读取每个文件的第一行并使用 nchar
检查其长度。
filelist <- dir(pattern='txt$')
for (i in filelist) {
if (nchar(readLines(i, n=1) == 177)
print('correct')
else
print('incorrect')
}