如何将希腊字母显示为矩阵的行名
How to show greek letters as the rownames of a matrix
我想知道如何在 R 中设置包含希腊字母表达式的矩阵的行名。我使用 "expression",但它似乎不起作用。下面是我的代码。
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="")) )
当我键入 b.summary 时,显示的行名如下:
paste(tau, "=1", sep = "")
而不是乳胶表达式。
我想要希腊字母的原因是我正在使用 knitr 创建动态文档。我想直接显示该矩阵的结果,而不是创建一个 table 使用 \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
@
提前感谢您的帮助!
这是我在使用矩阵的约束下所能做的最好的。行名不能是 R expression
分类的对象。我正在构建一个名为 '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
调整@42-解决方案(这应该是评论,但答案具有更好的代码格式):
greeks = c(alpha='\u03b1', tau='\u03c4', sigma='\u03c3', sigmaSq='\u03c3\u00B2', beta='\u03b2', gamma='\u03b3')
b.summary = matrix(0, 8, 6)
colnames(b.summary) = c("Min.", "1st Qu.", "Median", "Mean","3rd Qu", "Max.")
p1 = c(greeks['tau'], greeks['sigmaSq'])
p2 = c("1","1", "5", "0.2", "16", "0.0625", "2.25", "2.25")
rownames(b.summary) = paste(p1, p2, sep="=")
b.summary
产生以下内容
Min. 1st Qu. Median Mean 3rd Qu Max.
τ=1 0 0 0 0 0 0
σ²=1 0 0 0 0 0 0
τ=5 0 0 0 0 0 0
σ²=0.2 0 0 0 0 0 0
τ=16 0 0 0 0 0 0
σ²=0.0625 0 0 0 0 0 0
τ=2.25 0 0 0 0 0 0
σ²=2.25 0 0 0 0 0 0
在我的特定用例中,我正在编织 'kable' 方差 inflation 因子和 s.d。 inflation mtcars
数据集的因子:
cars.vif = rbind(
t(vif(cars.model)[,1]),
t(sqrt(vif(cars.model))[,1])
)
rownames(cars.vif) = c("\u03c3", "\u03c3\u00B2")
kable(cars.vif)
KnitR'ing 这需要 xelatex
和包含 σ 的字体,即 Arial
我想知道如何在 R 中设置包含希腊字母表达式的矩阵的行名。我使用 "expression",但它似乎不起作用。下面是我的代码。
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="")) )
当我键入 b.summary 时,显示的行名如下:
paste(tau, "=1", sep = "")
而不是乳胶表达式。
我想要希腊字母的原因是我正在使用 knitr 创建动态文档。我想直接显示该矩阵的结果,而不是创建一个 table 使用 \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
@
提前感谢您的帮助!
这是我在使用矩阵的约束下所能做的最好的。行名不能是 R expression
分类的对象。我正在构建一个名为 '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
调整@42-解决方案(这应该是评论,但答案具有更好的代码格式):
greeks = c(alpha='\u03b1', tau='\u03c4', sigma='\u03c3', sigmaSq='\u03c3\u00B2', beta='\u03b2', gamma='\u03b3')
b.summary = matrix(0, 8, 6)
colnames(b.summary) = c("Min.", "1st Qu.", "Median", "Mean","3rd Qu", "Max.")
p1 = c(greeks['tau'], greeks['sigmaSq'])
p2 = c("1","1", "5", "0.2", "16", "0.0625", "2.25", "2.25")
rownames(b.summary) = paste(p1, p2, sep="=")
b.summary
产生以下内容
Min. 1st Qu. Median Mean 3rd Qu Max.
τ=1 0 0 0 0 0 0
σ²=1 0 0 0 0 0 0
τ=5 0 0 0 0 0 0
σ²=0.2 0 0 0 0 0 0
τ=16 0 0 0 0 0 0
σ²=0.0625 0 0 0 0 0 0
τ=2.25 0 0 0 0 0 0
σ²=2.25 0 0 0 0 0 0
在我的特定用例中,我正在编织 'kable' 方差 inflation 因子和 s.d。 inflation mtcars
数据集的因子:
cars.vif = rbind(
t(vif(cars.model)[,1]),
t(sqrt(vif(cars.model))[,1])
)
rownames(cars.vif) = c("\u03c3", "\u03c3\u00B2")
kable(cars.vif)
KnitR'ing 这需要 xelatex
和包含 σ 的字体,即 Arial