ds=read.table("http://www.biostat.mcgill.ca/hanley/c634/Rates/WestburyMontrealCondos20200127.txt",as.is=TRUE) str(ds) table(ds$Type) ds$Floor=floor(ds$Unit/100) table(ds$Floor) # ds=ds[ds$Type!="Loft" & ds$Type!="6.5" & ds$Floor > 1 & ds$Floor < 10,] table(ds$Type, ds$Phase) aggregate(ds[,4:5],by=list(type=ds$Type,phase=ds$Phase),mean)