Di <- MTTB_Clean[!(MTTB_Clean[,i] %in% c(boxplot.stats(MTTB_Clean[,i])$out)),i]
returns a single column. You will end up with a one-column data frame with about four times as many rows as your original data frame. Have you considered replacing the outliers with NA?
Be careful with this method of cleaning data. If your data set is large, some points will surely fail the boxplot.stats outlier rule, even if the data are perfectly normal. For a small data set, you are relying on the data being normally distributed.