我生成了一份调查权重。由于异常值的调查权重可能导致非常大的差异,我遵循许多统计书籍的建议:我想削减调查权重中的前5%和后5%。我想使用dplyr来实现这一点。
#generate data
data<-as.data.frame(cbind(sequence(2000),rnorm(2000,mean=3.16,sd=1.355686)))
names(data)<-c("id","weight")
#This is how far i got
data2<-data %>% mutate(perc.weight=percent_rank(weight)) %>%
mutate(perc.weight>0.95 | perc.weight<0.05)
在此之后,我获得了两个新变量。第一个变量给出权重的百分比排名。第二个变量显示值是否超出了目标范围。
现在,我想用那些百分位数边界所组成的权重值来替换处于95-100百分位和0-5百分位内的权重。
如果能得到任何帮助,我将不胜感激!
ntile
函数。@shadow,好答案!(+1) - talat