2014-01-14 5 views
1

Как я начинаю R, я разрешаю себе задавать R пользователям небольшой вопрос. Я хочу представить в графике (точки, линии, кривые) значения веса двух групп людей, обработанных и не обработанных лекарством (0,1), измеренного десять раз (в месяцах).R matplot function

drug NumberIndividu Mar Apr May June July August September November October December 
1 9 25.92 24.6 31.85 38.50 53.70 53.05 65.65 71.45  69.10  67.20 
1 10 28.10 26.6 32.00 38.35 53.60 53.25 65.35 65.95  67.80  65.95 
1 11 29.10 28.8 30.80 38.10 52.25 47.30 62.20 68.05  66.20  67.55 
1 13 27.16 25.0 27.15 34.85 47.30 43.85 54.65 62.25  60.85  58.05 
0 5 25.89 25.2 26.50 27.45 37.05 38.95 43.30 50.60  48.20  50.10 
0 6 28.19 27.6 28.05 28.60 36.15 37.20 40.40 47.80  45.25  44.85 
0 7 28.06 27.2 27.45 28.85 39.20 41.80 51.40 57.10  54.55  55.30 
0 8 22.39 21.2 30.10 30.90 42.95 46.30 48.15 54.85  53.35  49.90 

Я пробовал:

w= read.csv (file="/file-weight.csv", header=TRUE, sep=",") 
w<-data.frame(w) 
rownames(w[1:8,]) 
rownames(w)<-(c(w[,1])) 

cols <- character(nrow(w)) 
cols[rownames(w) %in% c(rownames(w[1:4,]))]<-"blue" 
cols[rownames(w) %in% c(rownames(w[5:8,]))]<-"red" 
pairs(w,col=cols) 

Мой вопрос заключается в том, чтобы конфигурировать функцию matplot иметь один графический вид (точки или кривые или Hist + кривые) Моя главная цель состоит в том, чтобы визуализировать все распределения individus после двух цветов первого столбца (лекарственного средства) для всех дат в одном изображении.

Большое спасибо за ваши предложения

ответ

5

Является ли это то, что вы имели в виду?

код основан на ответ ->this question < - просто используя набор данных (df) вместо iris. Так что в ответ на замену:

x <- with(iris, data.table(id=1:nrow(iris), group=Species, Sepal.Length, Sepal.Width,Petal.Length, Petal.Width)) 

с:

xx <- with(df, data.table(id=1:nrow(df), group=drug, df[3:12])) 

Если все, что вы хотите, это участки плотности/гистограмм, это проще (см. Ниже) Они дополняют друг друга, поскольку они показывают, что вес увеличивается как в контрольных, так и в тестовых группах, только быстрее в тестовой группе. Вы бы не выбрали это из матрицы диаграммы рассеяния. Кроме того, есть предположение, что изменчивость в весе больше в контрольной группе и со временем растет.

library(ggplot2) 
library(reshape2) # for melt(...) 
# convert df into a form suitable to use with ggplot 
gg <- melt(df,id=1:2, variable.name="Month", value.name="Weight") 
# density plots 
ggplot(gg) + 
    stat_density(aes(x=Weight, y=..scaled.., color=factor(drug)),geom="line", position="dodge")+ 
    facet_grid(Month~.)+ 
    scale_color_discrete("Drug") 
# histograms 
ggplot(gg) + 
    geom_histogram(aes(x=Weight, fill=factor(drug)), position="dodge")+ 
    facet_grid(Month~.)+ 
    scale_fill_discrete("Drug") 

+0

да это здорово, не могли бы вы дать мне пожалуйста код? – user3064106

+0

@ user3064106 Я думаю, что он просто сделал :-) –

+0

Я ссылаюсь на него в ответе. Также см. Правки. – jlhoward