我正在尝试为课程制作散点图。最后一个问题要求我制作一个散点图,显示身高和体重是否显着相关,但教授想要一个说明性的散点图,其中的点根据人的性别着色。我的代码如下。同样公正的警告我对R不是特别熟练,因为这个问题可能很明显。
dt=read.csv("http://rfs.kvasaheim.com/stat4013/spencjw.csv")
attach(dt)
summary(dt)
###Section E
table(height, weight, gender)
mod=lm(height~weight)
summary(mod)
confint(mod)
plot(height~weight, main="height vs weight", xlab="height",
ylab="height", abline(lm(height~weight)))
非常感谢任何帮助!
答案 0 :(得分:1)
如果您的gender
变量已经是factor
,那么将col=gender
参数添加到plot()
命令应该已经有效了。否则,您可能需要使用gender
重新编码as.factor()
。看看?as.factor
。
考虑pch=19
,我发现这比默认圈子更清晰。
我建议阅读 R 简介,该文件应在R GUI的“帮助”菜单下以PDF格式提供。
有关编程的问题更适合Stack标记中的StackOverflow。我将此标记为关闭&迁移。
答案 1 :(得分:0)
根据gender
变量的编码方式,您可以执行以下操作:
如果是gender
,例如男性为1,女性为2
plot(height~weight, main="height vs weight", xlab="height",
ylab="height", col=c("blue","pink")[gender])
如果gender
是,例如" M"男人和" F"女性:
plot(height~weight, main="height vs weight", xlab="height", ylab="height",col=sapply(gender,switch,"M"="blue","F"="pink"))
答案 2 :(得分:0)
我认为这是做你需要的最简单方法
require(ggplot2)
dt=read.csv("http://rfs.kvasaheim.com/stat4013/spencjw.csv")
g <- ggplot(dt, aes(x=height, y=weight, colour=gender))
g <- g + geom_point()
g