满足substr条件时的条件标记R.

时间:2017-01-27 15:27:17

标签: r ggplot2

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    -

我挣扎的是选择性标签,但更具体地说是startsWithsubset

我想只绘制以&#34; A&#34;开头的基因的标签。就我而言(A和AC)

但是当我使用start时,我收到了错误:

Error in startsWith(genes.to.plot$GENE, "A") : non-character object(s)

我不理解这个错误,因为我在函数中提供了正确的信息

我对R很新,我期待一些downvotes但是你可以帮我解决这个小问题吗?

1 个答案:

答案 0 :(得分:1)

您的genes.to.plot$GENE可能是因素。要避免错误,请确保列类型为character。例如:

genes.to.plot$GENE = as.character(genes.to.plot$GENE)

或者,更好的是,不要把它变成一个因素。这可能在创建data.frame时自动发生。指定参数stringsAsFactors = FALSE以避免它。