2014-01-28 11 views
0

У меня есть две таблицы данных в виде столбцов, а именно пара болезней и их меры как пара. Ниже первая одна (выборочные данные) disease_table1График построения в R

**d1** **d2** **Value** 

Disease1 Disease2 3.5 
Disease3 Disease4 5 
Disease5 Disease6 1.1 
Disease1 Disease3 2.4 
Disease6 Disease2 6.7 

реальный Dataset 1 (disease_table1) ниже:

Bladder cancer       X-linked ichthyosis (XLI)  3.5 
Leukocyte adhesion deficiency (LAD) Aldosterone synthase Deficiency 1.8 
Leukocyte adhesion deficiency (LAD) Brain Cancer      1.5 
Tangier disease      Pancreatic cancer    0.66 

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

plot(density(disease_table1$value)) 
    lines(density(disease_table1$value)) 

Благодаря

+3

Не могли бы вы предоставить нам [воспроизводимый пример] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)? – Jaap

+0

Я добавил реальный набор данных, код в качестве примера. – Rgeek

+0

С 400 000 + пар болезней вам, вероятно, нужен подход кластеризации. можете ли вы разместить ссылку на свои данные или более представительное подмножество, скажем, несколько тысяч записей? – jlhoward

ответ

2

Некоторые примеры кода:

# creating dataframes (i made up a second one) 
df1 <- read.table(text = "d1 d2 x 
Disease1 Disease2 3.5 
Disease3 Disease4 5 
Disease5 Disease6 1.1 
Disease1 Disease3 2.4 
Disease6 Disease2 6.7", header = TRUE, strip.white = TRUE) 

df2 <- read.table(text = "d1 d2 y 
Disease1 Disease2 4.5 
Disease3 Disease4 2 
Disease5 Disease6 3.1 
Disease1 Disease3 1.4 
Disease6 Disease2 5.7", header = TRUE, strip.white = TRUE) 

# needed libraries 
library(reshape2) 
library(ggplot2) 

# merging dataframes & creating unique identifier variable 
data <- merge(df1, df2, by = c("d1","d2")) 
data$diseasepair <- paste0(data$d1,"-",data$d2) 

data.long <- melt(data, id="diseasepair", measure=c("x","y"), variable="group") 

# make the plot 
ggplot(data.long) + 
    geom_bar(aes(x = diseasepair, y = value, fill = group), 
      stat="identity", position = "dodge", width = 0.7) + 
    scale_fill_manual("Group\n", values = c("red","blue"), 
        labels = c(" X", " Y")) + 
    labs(x="\nDisease pair",y="Value\n") + 
    theme_bw() 

Результат:

enter image description here

Это то, что ты смотришь на?

+0

У меня есть 400k пар такого рода, поэтому я не думаю, что это сработает. Было бы отлично работать для меньшего набора данных. Я полагаю, карта кривой или тепла может работать? – Rgeek

+0

Для 400 тыс. Пар карта тепла не будет работать ни ИМХО. Вы хотите сравнить значения для каждой пары? Или просто для определенных пар? – Jaap

+0

В принципе, я хочу показать обогащение пар болезней, используя значения в одном наборе данных, а также другое. Итак, я хочу сравнить значения для каждой пары. – Rgeek

Смежные вопросы