library(reshape2) read_superbowl_data = function(){ ## Read the data row by row (is there a better way?): ## in_start_of_data = 13 ## the first line of data in_end_of_data = 38 ## the last line of data n_data_per_row = 4 rows = c() fn = '../../Data/Superbowl.dat' rl = readLines(fn, warn=FALSE) for( ln in 1:length(rl) ){ if( ln < in_start_of_data ){ next } if( ln > in_end_of_data ){ break } parts = strsplit(trimws(rl[ln]), '\\s+')[[1]] rows = rbind(rows, t(parts[1:n_data_per_row])) } DF = data.frame(rows) colnames(DF) = c('Team', 'Drive_Number', 'Starting_Distance', 'Score') DF$Drive_Number = as.numeric(as.character(DF$Drive_Number)) DF$Starting_Distance = as.numeric(as.character(DF$Starting_Distance)) DF$Score = as.numeric(as.character(DF$Score)) DF }