我有以下代码
frame()
Y = read.table("Yfile.txt",header=T,row.names=NULL,sep='')
X = read.table("Xfile.txt",header=F,sep='')
plot(Y$V1~X$V1,pch=20,xlim=c(0,27))
par(new=T)
plot(Y$V1~X$V2,pch=20,xlim=c(0,27),col='red')
par(new=T)
plot(Y$V1~Y$V3,pch=20,xlim=c(0,27),col='blue')
par(new=T)
Run Code Online (Sandbox Code Playgroud)
一切都很好,我在同一个图上得到了3张图.但是,当我想划分X $ V1,X $ V2和X $ V3来规范化数据时
plot(Y$V1~X$V1/Y$V2,pch=20,xlim=c(0,27))
par(new=T)
plot(Y$V1~X$V2/Y$V2,pch=20,xlim=c(0,27),col='red')
par(new=T)
plot(Y$V1~Y$V3/Y$V2,pch=20,xlim=c(0,27),col='blue')
par(new=T)
Run Code Online (Sandbox Code Playgroud)
我收到了消息
点击返回查看下一个图:
并且图表不会显示在同一个图中.谁能告诉我发生了什么以及如何解决它?
如果要在公式中使用算术运算,则必须使用I()函数.所以
plot(Y$V1~I(X$V1/Y$V2),pch=20,xlim=c(0,27))
par(new=T)
plot(Y$V1~I(X$V2/Y$V2),pch=20,xlim=c(0,27),col='red')
par(new=T)
plot(Y$V1~I(Y$V3/Y$V2),pch=20,xlim=c(0,27),col='blue')
par(new=T)
Run Code Online (Sandbox Code Playgroud)
作品.
以下帮助页面formula:
为了避免这种混淆,
I()可以使用该函数 来包括模型公式中那些在算术意义上使用运算符的部分.例如,在公式中y ~ a + I(b+c),该术语b+c将被解释为和的b和c.
编辑.你可以在一个命令中没有公式的情况下完成:
plot(c(X$V1/Y$V2, X$V2/Y$V2, Y$V3/Y$V2), rep(Y$V1, 3),
pch=20, xlim=c(0,27),
col=rep(c("black", "red", "blue"), each=30)
)
Run Code Online (Sandbox Code Playgroud)