###########################################################################
## User Setting starts
###########################################################################
##
## Set number of files to split
numFilesToSplit <- readline(prompt="Enter the number of files to split: ")
##
## Set random seed
inputSeed <- readline(prompt="Enter the random seed to use (press ENTER to use a system time stamp for the seed): ")

if( inputSeed == "" ) { 
	mySeed <- strtoi(format(Sys.time(), "%s"))
} else { 
	mySeed <- strtoi(inputSeed) 
}
##
## Name of the file in current directory. .csv is the default extension
## Output file names ends with -#.csv where # represents the index of the file
cat ("Choose a source file: \n")
flush.console()
inputFileName <- file.choose()
###########################################################################
## User Setting ends
###########################################################################

# Set the working directory
this.dir <- dirname(parent.frame(2)$ofile)
setwd(this.dir)
myData <- read.csv(file=inputFileName, header=TRUE, sep=",")

numberOfSamples <- nrow(myData)

cat ("Read in ", inputFileName,"\n")
cat (" with [", numberOfSamples, "] case(s) and [", ncol(myData), "] variable(s)\n")
flush.console()

cat ("Using seed [", mySeed, "]. Record this for replication\n")
set.seed(mySeed)

myData["Rand"] <- sample(1:numFilesToSplit,numberOfSamples, replace=TRUE)
splitData <- split(myData, myData$Rand)

splitFileName <- strsplit(fileName, "\\.")
for(i in 1:numFilesToSplit) {
	resultFileName <- paste(splitFileName[[1]][1], "-",i,".",splitFileName[[1]][2], sep="")
	write.csv(splitData[i], resultFileName)
}
resultFileName <- paste(splitFileName[[1]][1], "-log.csv", sep="")
write.csv(myData, resultFileName)