如何在R中制作点图网格

如何在R中制作点图网格,r,plot,grid,stata,R,Plot,Grid,Stata,我有一个新生儿兄弟姐妹体重和性别的数据样本,想在R中绘制一个普通的2x2点图,如下所示: 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

我有一个新生儿兄弟姐妹体重和性别的数据样本,想在R中绘制一个普通的2x2点图,如下所示:

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=女孩。在原始的.dta文件中,它们被标记

我找到了这条线,我认为这是一条路,但我不知道该怎么绕着它转:


非常感谢您的帮助。

在您共享的线程中,答案建议使用
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)))

对。现在,让我们添加您想要的两个方面,即
sex1
sex2

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

切面完美!真的做到了。非常感谢你。我对R还是很陌生,所以我肯定会回去学习!但是非常感谢!这不仅仅是Stata的名字:我想大多数人都会称之为散点图。嗨,尼克。我认为你完全正确。散点图是更正确的术语。我目前正在学习一门关于生物统计学的课程,课程材料是由我的Stata代码提供的,但我承诺使用R,所以有时会遇到一些小问题。
faceted <- p1 + facet_wrap(~sex1 + sex2, ncol = 2, nrow = 2)
print(faceted)