我有一个数据矩阵(带有行名称和列名称)。我想为每列数据绘制一个点图,每个图表中的数据从最大到最小排序,然后将这些图在图中一个一个地排列。
例如,如果我有以下矩阵:
> X
W X Y Z
A 11.7 8.7 15.4 100.0
B 18.1 11.7 9.0 13.6
C 10.0 20.3 37.0 19.3
D 41.0 30.9 20.0 35.1
E 66.0 3.0 71.1 50.0
我想做四个点图(“W”、“X”、“Y”、“Z”列),每个图表的数据从最大到最小排序,并且图表放在另一个图表的顶部。
(注意dotchart(X)
不起作用,因为每列的排序都不同,请参阅问题 4654181 https://stackoverflow.com/questions/4654181/sorting-a-dotchart-with-matrix-input-in-r/4668856)
允许我执行此操作的 R 命令序列是什么?
apply(X, 2, sort)
W X Y Z
[1,] 10.0 3.0 9.0 13.6
[2,] 11.7 8.7 15.4 19.3
[3,] 18.1 11.7 20.0 35.1
[4,] 41.0 20.3 37.0 50.0
[5,] 66.0 30.9 71.1 100.0
dotchart(apply(X, 2, sort))
编辑:要添加正确排序的标签,您需要在列上使用名称(),然后按列值进行排序:
dotchart(apply(X, 2, sort),
labels=apply(X, 2, function(x) names(x)[order(x)] )
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)