如何使用原子向量作为R中图形标题的字符串

时间:2014-01-24 12:44:46

标签: string r graph atomic-values

我正在尝试从R中的z分数矩阵绘制图形,我想构建一个函数,使用列标题作为标题的一部分迭代每列,并将每个图形保存为png。我想我知道如何进行迭代并将图形保存为pngs但我仍然坚持使用向量作为字符串。我尝试上传没有列标题的矩阵,然后将矩阵[1,]存储为要使用的变量“标题”。然后我试图绘制:

 plot(1:30, rnorm(30), ylim=c(-10,10), yaxs="i", xlab = "Region", ylab = "Z-Score",main = "CNV plot of " + headers[i], type = "n")

我明白了:

 Warning message:
 In Ops.factor(left, right) : + not meaningful for factors

我试着没有'+',它说:

 Error: unexpected symbol in ...

然后我环顾四周,找到了'paste(headers [i],collapse =“”),虽然我可以替代它,但它只是将数字'28'作为标题。

我已经尝试了我认为的另一种潜在解决方案:

 plot(1:30, rnorm(30), ylim=c(-10,10), yaxs="i", xlab = "Region", ylab = "Z-Score",main = "Z-scores of " $headers[i], type = "n")

我得到了:

 Error in "Z-scores of "$headers : 
 $ operator is invalid for atomic vectors

我是R的新手,如果我偶然在谷歌搜索后偶然发现正确的指南/教程,这似乎很简单,但我真的没有那种时间在我的手上。任何建议,指针或解决方案都会很棒??

2 个答案:

答案 0 :(得分:2)

paste("CNV plot of", headers[i]),应该有效。如果要粘贴长度大于一的向量,则只需要collapseheaders[i]应为一个长度,即使header不是)。与PHP,JS等不同,R没有任何连接运算符(因此+&.将不起作用,您必须使用paste)。< / p>

请注意,您的粘贴为paste(headers[i],collapse=" "),如果刚刚标出28,则表示您的headers向量不包含您认为的内容(如果您不想要的话)要显示28,即。

尝试循环遍历矢量并将粘贴命令打印到屏幕以查看它显示的内容(并且还打印矢量)。

答案 1 :(得分:2)

如果要将变量中的值插入到绘图标题的字符串中,bquote是可行的方法:

headers <- c(28, 14, 7) # an examle
i <- 1

plot(1:30, rnorm(30), ylim=c(-10,10), yaxs="i",
     xlab = "Region", ylab = "Z-Score", type = "n",
     main = bquote("CNV plot of" ~ .(headers[i])) )

enter image description here

请查看?bquote的帮助页面以获取更多信息。