Как я могу создать этот конкретный блокпост, который объединяет данные на нескольких уровнях из разных источников данных в ggplot или tidyverse / R? - PullRequest
0 голосов
/ 23 сентября 2019

Я создаю сюжет, который состоит из нескольких разных коробочных сюжетов.Пожалуйста, найдите мой образец данных ниже.

Я нашел данные трех разных исследований: p$studie==1,2,3

Данные включают различные образцы опухоли от определенного рака, который имеет четыре стадии: p$ny_stadie=1,2,3,4.

Каждая опухольУ пациента были удалены лимфатические узлы (в диапазоне от 3 до 124), и он непрерывно ковариат: p$n_fjernet.

Следовательно

  head(p)
  studie ny_stadie n_fjernet
1      1         1        25
2      1         4        10
3      1         1         3
4      1         4        27
5      1         3        13
6      1         4         9

Данные всех трех исследований имеют все четыре уровня p$ny_stadie==1,2,3,4 и удалены различные лимфатические узлы p$n_fjernet.

Я хочу создать этот сюжет (тоже до p$ny_stadie==3,4)

enter image description here

Проще говоря, я хочу показать распространение резецированных лимфатических узлов по p$ny_stadie и по p$studie.

Я использую ggplot и tidyverse.

# My Data
p <- structure(list(studie = c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), ny_stadie = structure(c(1, 
4, 1, 4, 3, 4, 4, 4, 4, 4, 4, 3, 1, 3, 4, 3, 1, 1, 1, 4, 4, 3, 
4, 4, 2, 2, 2, 2, 4, 3, 2, 1, 4, 1, 4, 3, 2, 1, 1, 1, 1, 4, 3, 
4, 2, 4, 4, 4, 4, 3, 3, 4, 3, 4, 2, 4, 4, 4, 1, 4, 4, 2, 4, 3, 
3, 4, 4, 4, 4, 3, 2, 4, 4, 3, 3, 3, 2, 1, 3, 4, 4, 3, 4, 4, 4, 
4, 4, 4, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2), class = "AsIs"), 
    n_fjernet = c(25L, 10L, 3L, 27L, 13L, 9L, 7L, 7L, 7L, 6L, 
    6L, 5L, 4L, 3L, 37L, 26L, 19L, 17L, 15L, 9L, 57L, 55L, 33L, 
    33L, 33L, 28L, 27L, 27L, 26L, 23L, 23L, 23L, 22L, 22L, 21L, 
    21L, 20L, 20L, 19L, 18L, 18L, 18L, 18L, 17L, 17L, 16L, 16L, 
    16L, 15L, 15L, 67L, 35L, 56L, 15L, 37L, 44L, 124L, 41L, 30L, 
    31L, 35L, 36L, 28L, 39L, 54L, 25L, 27L, 69L, 53L, 24L, 33L, 
    52L, 77L, 51L, 7L, 22L, 53L, 26L, 58L, 28L, 83L, 39L, 15L, 
    37L, 27L, 9L, 17L, 32L, 26L, 22L, 37L, 28L, 52L, 27L, 15L, 
    11L, 7L, 24L, 11L, 56L, 47L, 27L, 14L)), row.names = c(1L, 
2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, 10L, 11L, 12L, 13L, 14L, 15L, 
16L, 17L, 18L, 19L, 20L, 21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 
29L, 30L, 31L, 32L, 33L, 34L, 35L, 36L, 37L, 38L, 39L, 40L, 41L, 
42L, 43L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 380L, 381L, 382L, 
383L, 384L, 385L, 386L, 387L, 388L, 389L, 390L, 391L, 392L, 393L, 
394L, 395L, 396L, 397L, 398L, 399L, 400L, 401L, 402L, 403L, 404L, 
405L, 406L, 407L, 408L, 409L, 410L, 411L, 412L, 413L, 414L, 415L, 
416L, 417L, 418L, 620L, 621L, 622L, 623L, 624L, 625L, 626L, 627L, 
628L, 629L, 630L, 631L, 632L, 633L), class = "data.frame")

1 Ответ

2 голосов
/ 23 сентября 2019

Я не уверен, было ли это вашим намерением, если не исправил мое, чтобы я мог отредактировать ответ

, выполнив следующие действия с данными:

p$ny_stadie_f <- factor(p$ny_stadie)
p$studie_f <- factor(p$studie)
q <- ggplot(p, aes(x = ny_stadie_f, y = n_fjernet, fill= studie_f)) + geom_boxplot()
q

Я получаюследующий вывод:

enter image description here

Это желаемый выход, который вы хотите?Вы можете видеть, что в ny_stadie=3,4 нет выражения для случая, когда studie=3

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