[英]plot for double loop in R
我的问题是将for循环与R中的plot函数结合使用。我想在一个图中绘制多个点。 我不知道我的功能出了什么问题。 有什么帮助吗?
DATA
a x y z
149 1 1 0
153 1 1 10
160 1 1 10
149 1 2 0
153 1 2 0
160 1 2 10
149 2 1 0
153 2 1 0
160 2 1 5
149 2 2 0
153 2 2 0
160 2 2 5
PCH=0;
plot(c(142,169),c(0,11),type="n")
for(i in unique(DATA$x)) {
for(j in unique(DATA$y)) {
PCH=PCH+1
select <- DATA[i,j]
X = DATA[select,"a"];
Y = DATA[select,"z"]
points(X,Y,pch=PCH)
}
}
这是不是偶然地实现了您想要实现的目标?
plot(z~a,data=DATA,
pch=as.numeric(interaction(x,y)),
xlim=c(142,169),ylim=c(0,11))
您的选择是错误的。 尝试以下代码:
PCH <- 0
plot(c(142,169), c(0,11), type="n")
for(i in unique(DATA$x)) {
for(j in unique(DATA$y)) {
PCH <- PCH+1
select <- DATA$x == i & DATA$y == j
X <- DATA[select,"a"]
Y <- DATA[select,"z"]
points(X,Y,pch=PCH)
}
}
请注意,使用<-
代替=
会是更好的样式,因为=
还会在具有其他语法含义的其他目的中使用。 此外,您不需要;
在R行的末尾
您的X和Y值已关闭..您不需要select语句
plot(c(142,169),c(0,11),type="n")
for(i in unique(DATA$x)) {
for(j in unique(DATA$y)) {
PCH=PCH+1
X = DATA[(DATA$x==i) & (DATA$y==j),"a"];
Y = DATA[(DATA$x==i) & (DATA$y==j),"z"]
(points(X,Y,pch=PCH))
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.