1

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

如何使用十分位数来定义地层?

4

1 回答 1

4

使用该quantile函数计算一个变量的十分位数的示例,然后使用该cut函数根据这些十分位数计算一个因子,然后在其他计算中使用该因子,通过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应该与变量一起使用的函数,例如yd.

于 2013-04-21T01:25:08.610 回答