如何找到另一个变量的分位数组的一个变量的均值和标准偏差

时间:2018-12-18 00:17:19

标签: r statistics quantile percentile

我试图从其他问题中找到答案,但是由于其他问题的针对性很强或措辞混乱,我无法找到适合我情况的确切信息。去吧:

我有两个变量,每个变量有100个观察值:

V1 <- rnorm(100, 0, 1) 
V2 <- rpois(100, 4) 
data <- cbind(V1, V2)

我想根据参加者对一个变量(例如V1)的分位数进行分组,然后为每个分位数组计算V2的均值和标准差。

主要注意事项:我想根据它们与V1的平均值之间的标准差多少来创建组。因此,我的分位数组应该大致为:最低2%,第二个p-tile至第16、16至50、50至84、84至98,以及前2%。

1 个答案:

答案 0 :(得分:0)

除了计算分位数,您还可以对数据进行单位换算,并使用整数作为类别的切入点。

我们添加了一个缩放列:

data <- data.frame(data, V3 = scale(V1))

然后将数据分割为切点为-3至3的类别:

data$cats <- cut(data$V3, -3:3, labels = letters[1:6])

最后,我们合计得出每个组的V2的平均值和标准偏差。

aggregate(V2 ~ cats, function(x) c(mean = mean(x), st.dev = sd(x)), data = data)

#  cats  V2.mean V2.st.dev
#1    a 4.666667  2.081666
#2    b 4.352941  2.343640
#3    c 4.030303  1.828333
#4    d 3.838710  1.714580
#5    e 4.000000  3.082207
#6    f 5.000000  2.645751