我有两个向量-向量varnames
包含变量名,向量descs
包含它们的描述。我想paste0
一起使用它们,但在条形图中将其描述设为斜体。
我现在有这个:
labels <- paste0(varnames, "\n", descs)
但是我想要类似的东西
labels <- paste0(varnames, "\n", italic(descs))
我对expression
和substitute
很熟悉,但是我不知道如何使用它们。
编辑:我熟悉如何对两个字符串执行此操作。我的问题是关于两个向量。
答案 0 :(得分:0)
让我们假设varmanes
和descs
的一些值:
varnames = c("a", "b", "c")
descs = c("desc a", "desc b", "desc c")
然后您可以使用parse
函数获取字符串的表达式:
gsub(" ", "~", descs) %>%
paste('"',varnames, '\n "*italic(',.,')', sep = "") %>%
parse(text = .) -> eNames
eNames
#expression("a
# "*italic(desc~a), "b
# "*italic(desc~b), "c
# "*italic(desc~c))
注意,我仅将dplyr
的管道(即%>%
)用于代码清除。这是一个使用以上结果和ggplot
的示例:
df <- data.frame(dose=c("D0.5", "D1", "D2"),
len=c(4.2, 10, 29.5))
ggplot(data=df, aes(x=dose, y=len)) +
geom_bar(stat="identity") +
scale_x_discrete(labels = eNames) +
theme(text = element_text(size = 20)) +
coord_flip() +
labs(x = '')