R 显示与人口百分位数相关的分数的适当方式

R 显示与人口百分位数相关的分数的适当方式,r,excel,graph,comparison,spss,R,Excel,Graph,Comparison,Spss,我有一个包含8个变量和300多个观察值(参与者)的数据集。这些观察结果被随机分为10组。每个参与者执行相同的任务集 对于每一组,我想画一张图表,说明他们在总体百分位数的平均分数方面表现如何 我在谷歌上搜索了一下,找到了下面的图表。这是一组参与者的图表,每个栏代表一项任务。 绩效标签是通过将(每个任务的)总分分分为5个百分位组(分别为10%、20%、40%、20%、10%)生成的 有没有一种方法可以在R、SPSS或Excel中绘制 谢谢 在R中,您可以执行以下操作: a=c(0.1,0.4,0.5

我有一个包含8个变量和300多个观察值(参与者)的数据集。这些观察结果被随机分为10组。每个参与者执行相同的任务集

对于每一组,我想画一张图表,说明他们在总体百分位数的平均分数方面表现如何

我在谷歌上搜索了一下,找到了下面的图表。这是一组参与者的图表,每个栏代表一项任务。 绩效标签是通过将(每个任务的)总分分分为5个百分位组(分别为10%、20%、40%、20%、10%)生成的

有没有一种方法可以在R、SPSS或Excel中绘制

谢谢


在R中,您可以执行以下操作:

a=c(0.1,0.4,0.5,0.6,0.9)
# a containes the result per category in a vector

barplot(a, names.arg=c("Cat1", "Cat2", 
"Cat3","Cat4","Cat5"),horiz=TRUE,xlim=c(0,1),ylim=c(0,6.5))

# add the vertical lines
abline(v=c(0.25,0.5,0.75),col='red')

# add the text
text(0.1, y =6.3, labels = 'Low')
text(0.4, y =6.3, labels = 'Average')
text(0.6, y =6.3, labels = 'High')
text(0.85, y =6.3, labels = 'Very high')
输出如下所示:

a=c(0.1,0.4,0.5,0.6,0.9)
# a containes the result per category in a vector

barplot(a, names.arg=c("Cat1", "Cat2", 
"Cat3","Cat4","Cat5"),horiz=TRUE,xlim=c(0,1),ylim=c(0,6.5))

# add the vertical lines
abline(v=c(0.25,0.5,0.75),col='red')

# add the text
text(0.1, y =6.3, labels = 'Low')
text(0.4, y =6.3, labels = 'Average')
text(0.6, y =6.3, labels = 'High')
text(0.85, y =6.3, labels = 'Very high')
非常基本,但如果您愿意,可以进一步自定义它

编辑:添加代码以计算不同类别的分位数。我假设您有一个包含两列的R数据帧,一列包含结果名“col”,另一列包含名为category的类别

然后,此代码将起作用:

# df is the dataframe in which your data are stored
all_categories = unique(df$category)

N=length(all_categories)
results_category=rep(0,N)
# q is the percentile you have to compute 0.5 is the median
q_wanted=0.5

for (i in (1:N)){
  results_category[i] = quantile(x=df$col[df$category==all_categories[i]],prob=q_wanted)
}

barplot(results_category, 
names.arg=all_categories,horiz=TRUE,xlim=c(0,1),ylim=c(0,5))
abline(v=c(0.25,0.5,0.75),col='red')
text(0.1, y =4, labels = 'Low')
text(0.4, y =4, labels = 'Average')
text(0.6, y =4, labels = 'High')

是的,这正是我想要的!!现在我该如何计算每根杆的尖端到底应该落在哪里?我需要计算每个分数在其样本分位数内的位置。我做了一些研究,发现ecdf函数可能有帮助,但我不熟悉它。ecdf是计算经验分布函数所必需的。我想你只需要计算每个类别的百分位数。你可以使用一个R data.frame组合到分位数函数和正确的过滤器,除非我误解了你。我对R是新手,所以请原谅我的提问。假设我有一个项目的分数在0到20之间。经过数据收集和分析,我的中位数是15。我想找出受试者A的得分为13的位置。更精确一点,假设只有一个变量,有300个观察值。观察分为30组,因此有10组。我想告诉大家每组的平均值是多少。编辑了答案后,我无法提供更多的细节