Read Fixed Width Text File in R
In this article, we are going to see how to read fixed-width text files in R Programming language.
In text files, columns will have fixed widths, specified in characters, which determines the maximum amount of data it can contain. No delimiters are used to separate the fields in the file. Instead, smaller quantities of data are padded with spaces to fill the allotted space, such that the start of a given column can always be specified as an offset from the beginning of a line.
There are many methods to read the data in fixed width text file:
- Using read.fwf( ) function
- Using readLines( ) function.
- Using Fortran style format specification.
Method 1: Using read.fwf( ) function.
This method is done using read.fwf function from utils package. We have to use column widths for reading.
Syntax: read.fwf(file, widths, header = FALSE, sep = “\t”, skip = 0, row.names, col.names, n = -1, buffersize = 2000, fileEncoding = “”, …)
Now, we use read.fwf() for reading the fixed-width text file named “abcd.txt”.
Here we take widths in (5,2,2) format as student names are in 4,5 string length and marks are in 2-sized string length.
In the above output, we can observe that it reads the “abcd.txt” file and displays in format of 5,2,2 lengths(example: rahul,20,23 from “rahul2023”), with column names as Studentnames,Test1,Test2.
Method 2: Using readLines() function.
Here we are going to use readLines function. readLines() function in R Language reads text lines from an input file. The readLines() function is perfect for text files since it reads the text line by line and creates character objects for each of the lines.
path: path of the file
Method 3: Using Fortran style format specification.
Here we will use read.fortran() function. It is used to read fixed-format data files using Fortran-style format specifications
Syntax: read.fortran(file, format, …, as.is = TRUE, colClasses = NA)
- file: File or connection to read from.
- format: Character vector or list of vectors. See ‘Details’ below.
- as.is: Keep characters as characters?
- colClasses: Variable classes to override defaults.
Here we have created a file named “abcd.txt” for example purpose as shown in the below code. By using read.fortran function, we can read the data in fixed-width text file using fortran style format specifications.