繁体   English   中英

如何在R中从原子向量(矩阵)绘制值

[英]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'])

`$`运算符不是为矩阵定义的,而是为listsdata.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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM