Разбив столбцы матрицы, рассортировав точечные диаграммы каждого из них, затем выложив на рисунке - PullRequest
2 голосов
/ 14 января 2011

У меня есть матрица данных (с именами строк и столбцов).Я хотел бы сделать точечную диаграмму для каждого столбца данных, с данными, отсортированными от наибольшего к наименьшему в каждой диаграмме, а затем расположить эти графики один над другим на рисунке.

Например, если у меня была следующая матрица:

> 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 )

Какая последовательность команд R позволяет мне это делать?

1 Ответ

6 голосов
/ 14 января 2011
 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))

alt text

РЕДАКТИРОВАТЬ: чтобы добавить правильно отсортированные метки, вам нужно использовать имена () в столбцах, а затем порядок () с значениями столбцов:

dotchart(apply(X, 2, sort), 
         labels=apply(X, 2, function(x) names(x)[order(x)] )
          )

alt text

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...