2016-09-16 3 views
-1

У меня есть образец данных веса и пола новорожденных братьев и сестер, и вы хотите построить их на общем участке 2х2 точек в R, выглядящем следующим образом в Stata: 2x2 plot of birthweight of first compared to second childКак сделать сетку точечных графиков в R

код Stata это

egen sex1sex2=group(sex1st sex2nd),label 
scatter weight2nd weight1st,by(sex1sex2) aspect(1) scheme(s1mono) 

структура данных в R заключается в следующем:

> str(siblings) 
'data.frame': 1000 obs. of 5 variables: 
$ sex1st : int 1 1 1 2 1 1 2 1 2 2 ... 
$ sex2nd : int 1 2 1 2 2 2 1 2 2 1 ... 
$ weight1st: int 3740 3060 3650 3688 3740 3550 3850 3680 2390 3600 ... 
$ weight2nd: int 3740 3620 3700 3726 3000 3700 4020 4310 2250 3250 ... 
$ difw  : int 0 560 50 38 -740 150 170 630 -140 -350 ... 

только 1: 4 необходимо принимать во внимание. В сексе 1 = мальчик и 2 = девушка. В исходном .dt файле они помечены.

Я нашел эту тему, который я думаю, это путь, но я не уверен, как обернуть мою голову вокруг него: Dot Plots with multiple categories - R

спасибо за любую помощь.

+0

Это не просто имя Stata: Я думаю, что большинство людей назвали бы эти разброс. –

+0

Привет, Ник. Я думаю, ты совершенно прав. Скотцы - более правильный термин. В настоящее время я слежу за курсом по биостатистике, и материал курса предоставлен i Stata-code, но я обязался использовать R, поэтому я иногда сталкиваюсь с небольшими шишками. –

ответ

1

В теме, которую вы поделили, в ответ предлагается использовать ggplot2 для выполнения графика. Это внешний пакет, который очень полезен для создания (субъективно) более визуально привлекательных сюжетов в R. Это особенно полезно для огранки , и это то, что вы пытаетесь сделать.

Во-первых, вам нужно будет установить и загрузить библиотеку.

install.packages('ggplot2') 
library('ggplot2') 

Я создал несколько фиктивных данных для иллюстрации процесса:

x <- data.frame("sex1" = sample(1:2, 1000, replace = T), 
       "sex2" = sample(1:2, 1000, replace = T), 
       "weight1" = round(rnorm(1000, mean = 3000, sd = 100)), 
       "weight2" = round(rnorm(1000, mean = 3000, sd = 100))) 

Сейчас мы готовы начать построение с помощью ggplot2. Я собираюсь показать, что огранка выглядит, сначала запечатлевая все без граней. В основном это участки на диаграмму рассеяния weight1 (ось х) по weight2 (ось):

p1 <- ggplot(x, aes(x = weight1, y = weight2)) + geom_point() 
print(p1) 

enter image description here

справа. Теперь давайте добавим два аспекта, которые вы хотели, а именно sex1 и sex2:

faceted <- p1 + facet_wrap(~sex1 + sex2, ncol = 2, nrow = 2) 
print(faceted) 

enter image description here

Хотя это решает проблему непосредственно, я рекомендую прочитать больше на синтаксисе и приложения, чтобы понять функциональность от ggplot.

+0

Отлично! Это действительно так. Огромное спасибо. Я все еще очень новичок в R, так что, конечно, я вернусь учиться! Но спасибо большое! –

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