使用十分位来定义层

时间:2013-04-21 00:45:52

标签: r quantile

我有一个调查数据集,想要用十进制来定义地层,U1 =(数据集中的所有单位都在D0 = min和D1之间),U2 =(在D1和D2之间)...... U10 =(在D9到D10之间=最大值)。

如何使用十进制来定义分层?

1 个答案:

答案 0 :(得分:4)

使用quantile函数计算一个变量的十分位数的示例,然后使用cut函数计算基于这些十分位数的因子,然后在其他计算中使用该因子,通过{ {1}}:

tapply

另请参阅# Let's set up some data: y <- rnorm(30, 100, 20) x <- rpois(30, 25-y/20) # make x depend on y a little surveyres <- data.frame(y=y,x=x) # set up the deciles of one variable yd <- cut(y, breaks=c(-Inf,quantile(y,seq(0.1,0.9,by=0.1)),Inf) ) # compute means of another variable over deciles of the first: tapply(surveyres$x, yd, mean) (-Inf,84.2] (84.2,88.8] (88.8,93.8] (93.8,97.5] (97.5,100] (100,104] 23.66667 28.00000 22.33333 20.00000 20.33333 17.33333 (104,110] (110,114] (114,123] (123, Inf] 20.66667 19.33333 21.00000 20.33333 函数,该函数应与by等变量一起使用。