- d_adult$over_dist <- NA
- for(j in d_adult[,'D_P_PRODUCTNAME']){
- for(k in d_adult[which(d_adult[,'D_P_PRODUCTNAME']==j),'D_C_SHOPNAME']){
- d_pr <- d_adult[which(d_adult[,'D_P_PRODUCTNAME']==j&d_adult[,'D_C_SHOPNAME']==k),'M_S_PRICE']
- d_pr1 <- d_adult[which(d_adult[,'D_P_PRODUCTNAME']==j&d_adult[,'D_C_SHOPNAME']==k&d_adult[,'D_T_MONTH']==201804)
- ,'M_S_PRICE']
- if(d_pr1==NA){
- d_pr1 == 0
- }
- d_sd <- sd(d_pr)
- d_me <- mean(d_pr)
-
- if((d_me+2*d_sd) <= d_pr1)
- {
- d_adult[which(d_adult[,'D_P_PRODUCTNAME']==j&d_adult[,'D_C_SHOPNAME']==k&d_adult[,'D_T_MONTH']==201804)
- ,'over_dist'] <- '过高'
- }
- else if((d_me-2*d_sd) >= d_pr1)
- {
- d_adult[which(d_adult[,'D_P_PRODUCTNAME']==j&d_adult[,'D_C_SHOPNAME']==k&d_adult[,'D_T_MONTH']==201804)
- ,'over_dist'] <- '过低'
- }
- else if((d_me+2*d_sd) > d_pr1&(d_me-2*d_sd) < d_pr1)
- {
- d_adult[which(d_adult[,'D_P_PRODUCTNAME']==j&d_adult[,'D_C_SHOPNAME']==k&d_adult[,'D_T_MONTH']==201804)
- ,'over_dist'] <- '正常'
- }
- }
- }
想判断每个店铺中的SKU在2018年4月的价格是否变化过大,创建字段over_dist作为判断价格变化过大字段,所以就计算了所有月每个sku的平均值d_me和标准差d_sd,只要不在平均值加减2倍标准差范围内的价格都算变化过大,但总是出现错误,或者输出不对,请各位大神指教


雷达卡





京公网安备 11010802022788号







