我想知道如何设置矩阵的rownames,包括R中的希腊字母表达式.我使用"表达式",但它似乎不起作用.这是我的代码如下.
b.summary = matrix(0, 8, 6)
colnames(b.summary)= c("Min.", "1st Qu.", "Median", "Mean","3rd Qu", "Max." )
rownames(b.summary)= c(expression(paste(tau, "=1", sep="")),expression(paste(sigma^2, "=1", sep="")), expression(paste(tau, "=5",sep="")), expression(paste(sigma^2, "=0.2",sep="")), expression(paste(tau, "=16", sep="")), expression(paste(sigma^2, "=0.0625",sep="")), expression(paste(tau, "1/2.25", sep="")),expression( paste(sigma^2, "=2.25", sep="")) )
Run Code Online (Sandbox Code Playgroud)
当我输入b.summary时,显示的rownames如下:
paste(tau, "=1", sep = "")
Run Code Online (Sandbox Code Playgroud)
而不是乳胶表达.
我想要希腊字母的原因是我使用knitr来创建动态文档.我想直接显示此矩阵的结果,而不是使用\ Sexpr {}表达式手动键入矩阵的所有元素来创建表.knitr中的完整代码块是
<<coverage.b.summary, eval=TRUE, echo=FALSE>>=
b.summary = matrix(runif(48), 8, 6)
colnames(b.summary)= c("Min.", "1st Qu.", "Median", "Mean","3rd Qu", "Max." )
rownames(b.summary)= labels(expression(paste(tau, "=1", sep="")),expression(paste(sigma^2, "=1", sep="")), expression(paste(tau, "=5",sep="")), expression(paste(sigma^2, "=0.2",sep="")), expression(paste(tau, "=16", sep="")), expression(paste(sigma^2, "=0.0625",sep="")), expression(paste(tau, "=1/2.25", sep="")),expression( paste(sigma^2, "=2.25", sep="")) )
b.summary
@
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
这是我在使用矩阵的约束下可以做的最好的事情.expressionrownames 不能是R- classed对象.我正在构建一个名为'greeks'的命名向量,并使用名称从中提取Unicode值,然后使用参数回收来标记交替行与tau和sigma ^ 2.(无法使用表达式意味着不能在矩阵行名称中使用子脚本.)
greeks=c(alpha='\u03b1', tau='\u03c4', sigma='\u03c3',
beta='\u03b2',
gamma='\u03b3')
b.summary = matrix(0, 8, 6)
colnames(b.summary)= c("Min.", "1st Qu.", "Median", "Mean","3rd Qu", "Max." )
rownames(b.summary)= paste0(c( greeks['tau'], paste0(greeks['sigma'],"^2") ),
c("=1","=1", "=5", "=0.2",
"=16", "=0.0625", "=2.25", "=2.25") )
> b.summary
Min. 1st Qu. Median Mean 3rd Qu Max.
?=1 0 0 0 0 0 0
?^2=1 0 0 0 0 0 0
?=5 0 0 0 0 0 0
?^2=0.2 0 0 0 0 0 0
?=16 0 0 0 0 0 0
?^2=0.0625 0 0 0 0 0 0
?=2.25 0 0 0 0 0 0
?^2=2.25 0 0 0 0 0 0
Run Code Online (Sandbox Code Playgroud)