Если я хорошо понял, вам нужно вычислить квартиль внутри данных, поэтому, возможно, это поможет:
# some fake data
data <- data.frame(idNum=c(1,1,2,2,3,3,4,4),
date=c('01.2018','02.2018','01.2018','02.2018','01.2018','02.2018','01.2018','02.2018'),
salePrice=c(1,2,3,4,5,6,7,8))
data
idNum date salePrice
1 1 01.2018 1
2 1 02.2018 2
3 2 01.2018 3
4 2 02.2018 4
5 3 01.2018 5
6 3 02.2018 6
7 4 01.2018 7
8 4 02.2018 8
# an empty list to populate
qlist <- list()
# the loop that create the list with quartile for each date
for(k in data$date) {
subdata = subset(data, date == k)
subdata$quartile = cut(subdata$salePrice,4,labels=F)
qlist[[k]] <- subdata
}
# have it as a df
df <- do.call("rbind",qlist)
df
idNum date salePrice quartile
01.2018.1 1 01.2018 1 1
01.2018.3 2 01.2018 3 2
01.2018.5 3 01.2018 5 3
01.2018.7 4 01.2018 7 4
02.2018.2 1 02.2018 2 1
02.2018.4 2 02.2018 4 2
02.2018.6 3 02.2018 6 3
02.2018.8 4 02.2018 8 4