热爱编码的秃头女孩 发表于 2022-11-2 10:34 
太强了!!!感谢~
这只是示例。
实际上,因为男性和女性的差异,性别变量不应随机产生,而是需要按性别单独生成两组身高和体重的多元数据,再整合到一起。这样更严谨些。
- library(MASS)
- library(ggplot2)
- Sigma1 <- matrix(c(36, 0.8, 0.8, 36), 2, 2)#男性身高和体重的协方差矩阵
- Sigma2 <- matrix(c(30, 0.8, 0.8, 30), 2, 2)#女性身高和体重的协方差矩阵
- d1 <- as.data.frame(mvrnorm(n = 500, c(170, 65), Sigma1))#生成男性身高和体重数据
- d2 <- as.data.frame(mvrnorm(n = 500, c(160, 60), Sigma2))#生成女性身高和体重数据
- d1 <- cbind(d1, v3=rep("男",500))#添加性别变量取值男
- d2 <- cbind(d2, v3=rep("女",500))#添加性别变量取值女
- d <- rbind(d1,d2)
- colnames(d) <- c("Height", "Weight", "Gender")#更改变量名
- #身高和体重数据散点图
- ggplot(d) +
- aes(Height, Weight, color = Gender) + geom_point(size = 2.5) +
- scale_color_manual(values = c("blue", "red")) +
- theme_minimal()
复制代码