如何为另一个变量的分位数组找到一个变量的均值和标准差
How to find mean and standard deviation of one variable for quantile groups of another variable
我尝试从其他问题中找到答案,但由于其他问题非常具体或措辞混乱,我无法找到适用于我的情况的确切信息。这里是:
我有两个变量,每个变量有 100 个观察值:
V1 <- rnorm(100, 0, 1)
V2 <- rpois(100, 4)
data <- cbind(V1, V2)
我想根据参与者在一个变量(比如 V1)上的分位数对参与者进行分组,然后计算每个分位数组的 V2 的均值和标准差。
要点:我想根据它们与 V1 平均值的标准偏差来创建组。所以我的分位数组应该大致是:底部 2%、第 2 个 p-tile 到第 16 个、第 16 个到第 50 个、第 50 个到第 84 个、第 84 个到第 98 个以及顶部 2%。
您可以不计算分位数,而是对数据进行单位缩放,并使用整数作为类别的分界点。
我们添加一个缩放列:
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
我尝试从其他问题中找到答案,但由于其他问题非常具体或措辞混乱,我无法找到适用于我的情况的确切信息。这里是:
我有两个变量,每个变量有 100 个观察值:
V1 <- rnorm(100, 0, 1)
V2 <- rpois(100, 4)
data <- cbind(V1, V2)
我想根据参与者在一个变量(比如 V1)上的分位数对参与者进行分组,然后计算每个分位数组的 V2 的均值和标准差。
要点:我想根据它们与 V1 平均值的标准偏差来创建组。所以我的分位数组应该大致是:底部 2%、第 2 个 p-tile 到第 16 个、第 16 个到第 50 个、第 50 个到第 84 个、第 84 个到第 98 个以及顶部 2%。
您可以不计算分位数,而是对数据进行单位缩放,并使用整数作为类别的分界点。
我们添加一个缩放列:
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