我有一个数据集,有8个变量和300多个观察(参与者)。这些观察被随机分为10组。每个参与者执行相同的一组任务。
对于每一组,我想要画一个图表,说明他们在总体百分位数中的平均分数在哪里表现得有多好。
我搜索了一下,发现了下面的图表。这是一组参与者的图表,每个条形代表一个任务。绩效标签是通过将(每项任务)的总分分为5个百分位数组(分别为10%、20%、40%、20%、10%)来产生的。
有没有办法在R,SPSS或Excel中绘制这幅图?
谢谢

发布于 2017-08-21 12:04:22
在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')输出将如下所示:

非常基本,但您可以进一步自定义它,如果您愿意。
编辑:添加代码来计算不同类别的分位数。我将假设您有一个带有2列的containing,1列包含结果名"col“,另一列包含名为类别的类别。
那么这段代码就能工作了:
# 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')https://stackoverflow.com/questions/45792597
复制相似问题