get_species_data = function(){ ## ## xpdf ../EBook/Applied_Linear_Models_with_R.pdf -z 200 247 & ## con = file('~/Projects/Reading/N_Z/Zelterman/Data/species.dat', open='r') islands = c() data = c() while( TRUE ){ line = readLines(con, n=1) if( nchar(line)==0 ){ break } T = read.table(text=line, stringsAsFactors=FALSE) n = ncol(T) if(n==3){ island_name = T[1] number_columns = 2:3 }else if(n==4){ island_name = paste(T[1:2], collapse='_') number_columns = 3:4 }else{ island_name = T[1] number_columns = 2:3 } df = as.matrix(T[, number_columns]) islands = c(islands, island_name) if( length(data)==0 ){ data = df }else{ data = rbind(data, df) } } close(con) data = data.frame(data) data$island = islands data = data[, c(3, 1:2)] colnames(data) = c('island', 'n_species', 'area') ## My data file was missing some data columns. Here I add them back in: ## extra_columns_of_data = 'dist_to_nearest_neighbor dist_to_santa_cruz n_species_on_adjacent .6 .6 44 .6 26.3 237 2.8 58.7 5 1.9 47.4 2 1.9 1.9 444 8.0 8.0 44 6.0 12.0 18 34.1 290.2 21 .4 .4 108 2.6 50.2 25 1.1 88.3 58 4.3 95.3 347 1.1 93.1 97 4.6 62.2 3 47.4 92.2 51 .7 28.1 91 29.1 85.9 104 3.3 45.9 25 29.1 119.6 51 10.7 10.7 8 .5 .6 58 4.4 24.4 237 45.2 66.6 58 .2 19.8 70 .6 .0 8 16.5 16.5 444 2.6 49.2 25 .6 9.6 58 6.8 50.9 108 34.1 254.7 10' con = textConnection(extra_columns_of_data) data_extra = read.table(con, header=TRUE) close(con) DF = cbind(data, data_extra) return(DF) }