dataTable <- read.csv("example0.csv") columnUsability <- rep(NA, ncol(dataTable)) for(i in 1:ncol(dataTable)){ columnUsability[i] <- !(any(!is.finite(dataTable[,i])) || min(dataTable[,i])==max(dataTable[,i])) } dataTable <- dataTable[,columnUsability] N_LAG <- 3 origColnames <- colnames(dataTable) dataTableDeltas <- dataTable for(i in 1:ncol(dataTableDeltas)){ dataTableDeltas[,i] <- c(0,diff(dataTableDeltas[,i])) } dataTableTargets <- dataTableDeltas[-1,] dataTableTargets <- rbind(dataTableTargets, rep(0, ncol(dataTableTargets))) dataTableTargets[dataTableTargets > 0] <- 1 dataTableTargets[dataTableTargets < 0] <- -1 colnames(dataTableTargets) <- paste0("target_",colnames(dataTable)) colnames(dataTableDeltas) <- paste0(origColnames, "_lag1") dataTable <- dataTableDeltas if(N_LAG > 1){ for(lagIt in 2:N_LAG){ dataTableDeltas <- dataTableDeltas[-nrow(dataTableDeltas),] dataTableDeltas <- rbind(rep(0, ncol(dataTableDeltas)), dataTableDeltas) colnames(dataTableDeltas) <- paste0(origColnames, paste0("_lag",lagIt)) dataTable <- cbind(dataTableDeltas, dataTable) } } PREDICTOR_COLUMNS <- 1:ncol(dataTable) dataTable <- cbind(dataTable, dataTableTargets) TARGET_COLUMNS <- (PREDICTOR_COLUMNS[length(PREDICTOR_COLUMNS)]+1):ncol(dataTable) dataTable <- dataTable[-c(1:N_LAG), ] dataTable <- dataTable[-nrow(dataTable), ] write.csv(dataTable, file="example0.prepared.csv", row.names = FALSE)