Сортировка точечной диаграммы с матричным вводом в R - PullRequest
0 голосов
/ 11 января 2011

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

Например, R имеет хороший встроенный пример точечной диаграммы, использующей группы с матрицей в качестве входных данных:

dotchart(VADeaths, main = "Death Rates in Virginia - 1940")

В этом конкретном примере данные уже отсортированы в каждой категории для каждой из групп (сельские мужчины, сельские женщины и т. Д.). Однако, если это не так, каковы команды R, чтобы сгенерировать график таким образом, чтобы точки данных в каждой подгруппе сортировались по возрастанию или убыванию?

Ответы [ 2 ]

1 голос
/ 12 января 2011

Если вы не хотите упорядочивать данные по именам столбцов, как предложено @DWin, но только по числовым данным, вы можете попробовать:

# get data
data <- VADeaths[sample(1:5), ]
# order data by first row's numeric values
data <- data[order(data[,1]),]
dotchart(data)

Примечание.только первый столбец!Невозможно отсортировать каждый столбец в таблице без указания разных имен строк для каждого столбца, что определенно невозможно для класса таблицы.

Если вы придерживаетесь своего исходного вопроса: Я быпредложите разделить данные по столбцам, построить точечную диаграмму для каждого отсортированного столбца и собрать их в макете.

1 голос
/ 11 января 2011

Здесь показано создание матрицы с произвольным порядком строк и как ее восстановить в правильном порядке.

> set.seed(123)
> VA2 <- VADeaths[sample(1:5), ]
> VA2
      Rural Male Rural Female Urban Male Urban Female
55-59       18.1         11.7       24.3         13.6
65-69       41.0         30.9       54.6         35.1
70-74       66.0         54.3       71.1         50.0
60-64       26.9         20.3       37.0         19.3
50-54       11.7          8.7       15.4          8.4
> VA2[order(rownames(VA2)), ]
      Rural Male Rural Female Urban Male Urban Female
50-54       11.7          8.7       15.4          8.4
55-59       18.1         11.7       24.3         13.6
60-64       26.9         20.3       37.0         19.3
65-69       41.0         30.9       54.6         35.1
70-74       66.0         54.3       71.1         50.0

Если вы столкнулись с неупорядоченными именами, но не с желаемым лексическим порядкомможно просто использовать символьный вектор в правильном порядке с "["

> c2 <- c("Rural Male",   "Rural Female", "Urban Male" ,  "Urban Female")
> VA3 <- VA2[ , sample(1:4)]
> VA3
      Rural Male Rural Female Urban Male Urban Female
55-59       18.1         11.7       24.3         13.6
65-69       41.0         30.9       54.6         35.1
70-74       66.0         54.3       71.1         50.0
60-64       26.9         20.3       37.0         19.3
50-54       11.7          8.7       15.4          8.4
> VA3[ , c2]
      Rural Male Rural Female Urban Male Urban Female
55-59       18.1         11.7       24.3         13.6
65-69       41.0         30.9       54.6         35.1
70-74       66.0         54.3       71.1         50.0
60-64       26.9         20.3       37.0         19.3
50-54       11.7          8.7       15.4          8.4
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...