[英]How to plot values from atomic vectors (matrix) in R
我在绘制和访问下面创建的矩阵时遇到问题。
在这里,我创建了一个每个人都可以不使用我的数据的版本。
a<-rnorm(10,0,1)
b<-rnorm(10,2,1)
J<-matrix(0,10,2)
colnames(J)<-c("a","b")
J[,1]<-a
J[,2]<-b
然后希望绘图。 但是我收到不明白的错误消息:
with(J,plot(a,b))
+ eval中的错误(substitute(expr),data,enclos = parent.frame()):+数字'envir'arg的长度不为1
同
plot(J$a,J$b)
+ plot(J $ a,J $ b)+ J $ a中的错误:$运算符对原子向量无效
有人有什么主意吗?
来自GER的种种问候
如果将J定义为带有a和b列的data.frame,它将起作用:
a<-rnorm(10,0,1)
b<-rnorm(10,2,1)
J <- data.frame(a,b)
with(J,plot(a,b))
$仅适用于列表对象(包括data.frame)。 如果坚持使用矩阵,则可以使用带有索引或名称的方括号从列中抓取:
J <- cbind(a,b)
plot(J,[,1],J[,2])
plot(J[,"a"],J[,"b"])
就您而言,您是否有2列矩阵J
plot(J)
将照常工作
plot(J[,'a'], J[,'b'])
`$`
运算符不是为矩阵定义的,而是为lists
或data.frames
with
不适用于矩阵,因为矩阵不能是环境或围墙
plot(J[,1], J[,2])
和
with(as.data.frame(J), plot(a,b))
两者都工作
如果要按名称访问矩阵的列:
plot(J[ , colnames(J) %in% c("a", "b")])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.