gg.genes <- ggplot(genes.to.plot, aes(genes.x, genes.to.plot$START)) +
geom_text(size = 3,
hjust = -0.2,
vjust = 0,
aes(label = ""),
color = 'black',
data = subset(genes.to.plot, startsWith(genes.to.plot$GENE, "A")),
aes(label = genes.to.plot$GENE)) +
geom_segment(aes(xend=genes.x, yend=genes.to.plot$STOP),
arrow = arrow(length = unit(0.1, "cm"),
angle = 15),
colour = 'green4') +
labs(x="", y = "") +
theme_classic(base_size = 16)
所以,我正在绘制关于某些基因的Strand信息。 如果您想重新创建我用来绘制此数据的数据,请执行以下操作:
GENE START STOP STRAND
A 1 2 +
B 2 4 -
AC 3 6 +
DA 4 8 -
我挣扎的是选择性标签,但更具体地说是startsWith
和subset
。
我想只绘制以&#34; A&#34;开头的基因的标签。就我而言(A和AC)
但是当我使用start时,我收到了错误:
Error in startsWith(genes.to.plot$GENE, "A") : non-character object(s)
我不理解这个错误,因为我在函数中提供了正确的信息
我对R很新,我期待一些downvotes但是你可以帮我解决这个小问题吗?
答案 0 :(得分:1)
您的genes.to.plot$GENE
可能是因素。要避免错误,请确保列类型为character
。例如:
genes.to.plot$GENE = as.character(genes.to.plot$GENE)
或者,更好的是,不要把它变成一个因素。这可能在创建data.frame时自动发生。指定参数stringsAsFactors = FALSE
以避免它。