main = paste(替换(...),替换(...))在R_hist_title中

时间:2012-10-11 19:51:56

标签: r title

我正在尝试为R中的直方图绘制标题。我想要的标题来自两个来源,首先是一个矢量(death.cause)指定,呃,死因,第二个来自一个data.frame,我使用list,deathratecols进行索引,以便到达现场。

> death.cause 

> [[1]] [1] "Heart Attack"
> 
> [[2]] [1] "Heart Failure"
> 
> [[3]] [1] "Pneumonia"


> deathratecols

> [1] 11 17 23

我想组装标题,如:Heart Attack(x-bar = 7.63763),其中x-bar是数据列的平均值。我可以将这两部分分开工作,如下所示。

> main=substitute(x, list(x=death.cause[[i]]) )) # gives title "Heart Attack" 

> main=substitute(bar(X)==k, list(k=mean(outcome[, deathratecols[i] ], na.rm=TRUE   ) )) # gives title x-bar=7.63763

但是我使用paste()将两者放在一起的努力都失败了。

?有人指出我的方式错误

2 个答案:

答案 0 :(得分:2)

使用sprintf语句提前格式化标题,并将其传递给main。琐碎的例子:

a <- "foo"
b <- "bar"
title <- sprintf("This combines %s and %s", a, b)
hist(rnorm(10), main = title)

也许这样的事情(但可能不起作用,因为你没有提供一个例子来使用):

title <- sprintf("%s, (x-bar = %s)", death.cause[[i]], mean(outcome[, deathratecols[i]])

答案 1 :(得分:0)

您可以将substitute()和paste()组合在一起,如下所示:

hist(outcome[, deathratecols[i]], 
     main=substitute(paste(death.cause[[i]], "(", bar(X), "=", k, ")"), list(k=mean(outcome[, deathratecols[i]], na.rm=TRUE))))

它对我有用。