Solution Review: Handling TXT files
In this review, we provide a detailed analysis of the solution to this problem.
We'll cover the following
Solution: Input/Output from File
main.r
data.txt
evenOdd <- function(myVector) # a function that returns a vector# whose each element tells even or odd corresponding to input vector{myOutputVector <- vector("character", 0)for(i in myVector){if(as.integer(i) %% 2 == 0){myOutputVector <- c(myOutputVector, "even")}else{myOutputVector <- c(myOutputVector, "odd")}}return(myOutputVector)}# Driver Codepath <- "data.txt"fileData <- file(path, open = "r") # open the file located in pathlines <- readLines(fileData) # read lines of the filemyVector <- vector("numeric", 0) # vector to store datafor (i in 1:length(lines)) # iterate over all the lines{myVector <- c(myVector, lines[i]) # append lines in myVector}result <- evenOdd(myVector) # store output in resultwrite(result, "output/outData.txt") # write result on file
Explanation
In this example, we have to take input from a file and also output on file.
The main execution of the code given above starts from line number 20.
We first open the file located at the given path
. We then read all the lines present in the file and store in myVector
. Next, we pass this vector to the function evenOdd()
. This function returns us the myOutputVector
vector, which we write on file output/outData.txt
.