Как создать группы с несколькими столбцами в кадре данных - PullRequest
0 голосов
/ 30 апреля 2019

Как создать группы с несколькими столбцами?

Гистограмма: Как создать группы (используя столбцы) для окрашивания полос в соответствии с группами.

structure(list(DH105 = c(0.95238, 0.8922, 
0.8232, 0.2323), DH106 = c(0, 0.5327, 
0.5337, 0.8232), DH107 = c(0.2736, 
0.2321, 0.7382, 0.8923), 
    DH108 = c(0.2332, 0, 0, 0.3213), 
    DH112 = c(0.0315, 0.2639, 0.0321, 
    0.2673), DH113 = c(0.2372, 0.2871, 
    0.7222, 0)), row.names = c(NA, -4L), class = c("tbl_df", 
"tbl", "data.frame"))

У меня есть данныекадр с именами столбцов A, B, C и т. д. Я хочу назначить A и B группе 1;C, D, E для группы 2. Так что я могу раскрасить участки в соответствии с группой.

1 Ответ

0 голосов
/ 30 апреля 2019

Вы можете использовать Tidyverse для сбора данных и затем классифицировать их по группам:

library(tidyverse)

dat <- structure(list(A = c(0.9523, 0.06944, 
                     0.53061, 0.11111, 0.03125, 0.64794, 
                     0.10763, 0.02782, 0.0374149659863946, 0.8439), 
               B = c(0, 0.2378, 0.0068, 0.8328, 0.7292, 0.7539, 0.7439, 0.0742, 0.5272, 0.6822), 
               C = c(0.0273, 0.0901, 0.7778, 0.9462, 0.5327, 0.2744, 0.5327, 0.4262, 0.6821, 0.03125), 
               D = c(0.0297, 0, 0, 0.03462, 0.0272, 0.0325, 0.6282, 0.6282, 0.6329, 0.8925), 
               E = c(0.0325, 0.0829, 0.6328, 0.5237, 0.5722, 0.7283, 0.6382, 0.5637, 0.5632, 0.0532)), 
row.names = c(NA, -10L), class = c("tbl", "data.frame"))

dat_clean <- dat %>% 
  gather(key = "col", value = "value") %>% 
  mutate(group = case_when(
    col %in% c("A","B") ~ "group1",
    col %in% c("C", "D", "E") ~ "group2"
  ))

ggplot(dat_clean, aes(x = col, y = value, fill = group)) + 
  geom_bar(stat = 'identity') + 
  theme(legend.position = 'None')

Создано в 2019-04-30 с помощью представьте пакет (v0.2.1)

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