错误:“点击<返回>以查看下一个图:”在r </return>中

时间:2011-02-10 11:30:48

标签: r

我有以下代码

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)

一切都很好,我在同一个地块上得到了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) 

我收到了消息

  

点击返回查看下一个情节:

并且图表不会显示在同一个图表中。有谁能告诉我发生了什么以及如何解决它?

2 个答案:

答案 0 :(得分:6)

如果要在公式中使用算术运算,则必须使用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) 

作品。

关注formula的帮助页面:

  

为避免这种混乱,功能   I()可用于括号   模型公式的一部分   运算符用于算术运算   感。例如,在公式y ~ a + I(b+c)中,将使用术语b+c   被解释为bc的总和。


编辑。你可以在一个命令中没有公式的情况下完成它:

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)
)

答案 1 :(得分:4)

我不确定为什么会收到错误,但是对于第二个和第三个图表使用points而不是plot是一个更优雅的解决方案(并删除那些{{1} }来电)