Объедините два списка, чтобы получить фактор двух уровней

У меня есть два списка как так:

t1.visit.attendance [1] 77 74 71 62 59 56 55

t2.visit.attendance [1] 37 34 33 31 27 26 24

Я хочу сделать фактор, с уровнями t1.visit.attendance и t2.visit.attendance. Обратите внимание: t1 и t2 - два разных типа лечения.

Затем я хочу построить точечный график данных против чисел от 1 до 7 (которые соответствуют n-му посещению) на том же графике, где каждый тип обработки имеет цветовую кодировку.

2 ответа

Решение

Другой способ, просто чтобы показать некоторые варианты, включает в себя reshape2::melt функция:

t1.visit.attendance <- c(77,74,71,62,59,56,55)

t2.visit.attendance <- c(37,34,33,31,27,26,24)

df <- data.frame(t1 = t1.visit.attendance, 
                t2 = t2.visit.attendance)

newdf <- melt(df, measure.vars = c("t1", "t2"), variable.name = "visits")

> newdf
   visits value
1      t1    77
2      t1    74
3      t1    71
4      t1    62
5      t1    59
6      t1    56
7      t1    55
8      t2    37
9      t2    34
10     t2    33
11     t2    31
12     t2    27
13     t2    26
14     t2    24

Чтобы показать график, отличный от графика рассеяния, вот еще один способ использования dotplot

ggplot(newdf) +
    aes(x=value, color = visits) +
    geom_dotplot() +
    theme(axis.text.y=element_blank())

получая

Распределение посещений по категориям лечения

Библиотека решетки имеет вспомогательную функцию для этого называется make.groups, Например

t1.visit.attendance<-c(77,74,71,62,59,56,55)
t2.visit.attendance<-c(37,34,33,31,27,26,24)

lattice::make.groups(t1=t1.visit.attendance, t2=t2.visit.attendance)
#     data which
# t11   77    t1
# t12   74    t1
# t13   71    t1
# t14   62    t1
# ...
# t26   26    t2
# t27   24    t2
Другие вопросы по тегам