这是问题所在.我有两个向量列表,排序(我希望,但我可以对它们进行排序,如果它们不是),其中第一个列表中的第i个向量与第二个列表中的第i个向量一样多.我只想绘制它们.但我担心R不能列出列表的元素.任何想法如何解决?多谢.这是我试过的代码.
a<-c(2,1,5)
b<-c(2,2,2)
f<-c(4)
g<-c(1)
k<-list(a,f)
l<-list(b,g)
for(i in 1:2){
plot(l[i],k[i])}
Run Code Online (Sandbox Code Playgroud)
问题是
Error in xy.coords(x, y, xlabel, ylabel, log) :
(list) object cannot be coerced to type 'double'
Run Code Online (Sandbox Code Playgroud)
最好的办法是避免这样做 for-loop列表并取消列表以便绘制它们.
这是一种使用方式unlist:
plot(unlist(l),unlist(k))
Run Code Online (Sandbox Code Playgroud)
使用a for-loop的方法如下:
for (i in 1:2) {
par(new=T)
plot(l[[i]], k[[i]], xlim=c(0,2), ylim=c(0,5))
}
Run Code Online (Sandbox Code Playgroud)
但这完全没必要,因为你可以通过不公开来获得相同的结果.您还必须使用,par(new=T)以便第二个(或任何其他)绘图不会覆盖先前的绘图,您必须指定x和y限制,以便两个绘图具有相同的比例.此外,[[]]在访问列表的答案中,您必须使用双方括号作为@HubertL提及.结果与上面的结果相同(标签格式更大,因为标签会在彼此的顶部绘制两次).