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