
set.seed(0)
numRows <- 100
age <- ceiling(100*runif(numRows))
income <- ceiling(1e5*round(rlnorm(numRows),2))
debtToIncome <- 10*runif(numRows)
dataMatrix <- matrix(c(age,income,debtToIncome),
					 nrow=numRows,
					 ncol=3,
					 byrow=FALSE,
					 dimnames=list(1:numRows,c("age","income","debtToIncome"))
					 )
					
cat("What the data looks like:\n")
head(dataMatrix)

maxAge <- 60
minAge <- 20
maxIncome <- 3e5
minIncome <- 2e4
maxDTI <- 8
minDTI <- 0

dataMatrix <- dataMatrix[(dataMatrix[,"age"]<=maxAge & 
						  dataMatrix[,"age"]>=minAge &
						  dataMatrix[,"income"]<=maxIncome &
						  dataMatrix[,"income"]>=minIncome &
						  dataMatrix[,"debtToIncome"]<=maxDTI &
						  dataMatrix[,"debtToIncome"]>=minDTI
						  ),]

numRowsRemoved <- numRows-nrow(dataMatrix)

cat(numRowsRemoved, " rows were removed\n\n\n")

## Original context:

cat("Original context:\n\n")

pd <- matrix(c(age,income,debtToIncome),
			 nrow=numRows,
			 ncol=3,
			 byrow=FALSE,
			 dimnames=list(1:numRows,c("age","income","debtToIncome"))
			 )

cat("pd contains:\n")			 
print(pd)
	
upper <- c(60,3e5,8)
lower <- c(20,2e4,0)

# Something illogical going on with R replicating the vector ergo the transpose:
pd  <- pd [apply(t(pd)<=upper & t(pd)>=lower,2,all),]

a <- numRows-nrow(pd)

cat("\na is ",a,"\n\n")

cat("reduced pd:\n")	
print(pd)