R:data.frame中的数学表示法
我试图在data.frame中编写数学符号,但似乎两者不兼容。有办法解决这个问题吗 我也试过了R:data.frame中的数学表示法,r,dataframe,R,Dataframe,我试图在data.frame中编写数学符号,但似乎两者不兼容。有办法解决这个问题吗 我也试过了 > df = data.frame(Parameters = c(expression(beta[1]))) Error in as.data.frame.default(x[[i]], optional = TRUE) : cannot coerce class ""expression"" to a data.frame 我怎样才能出现?我不太清楚你在这里想做什么。如果您试图使用名为
> df = data.frame(Parameters = c(expression(beta[1])))
Error in as.data.frame.default(x[[i]], optional = TRUE) :
cannot coerce class ""expression"" to a data.frame
我怎样才能出现?我不太清楚你在这里想做什么。如果您试图使用名为Parameter的列创建一个dataframe df,该列的值取自beta列表中的向量,那么下面的代码将完成此工作
> data.frame(Parameters = paste(expression(beta[1])))
Parameters
1 beta[1]
如果这些对象不是您要查找的对象,请提供有关这些对象的更多信息。如果您希望将这些符号的latex代码存储在数据帧中,则可以从xtable生成正确的latex代码,您需要在print.xtable中通过输入一个返回输入的伪函数来覆盖sanitize函数。请参见以下问题: 乳胶表:
df = data.frame(Parameter = c("$\\beta_{0}$", "$\\beta_{1}$", "$\\beta_{2}$"),
Estimate = beta, row.names = 1)
print(xtable(t(df)), sanitize.text.function = function(x){x})
与xtable类似,stargazer有一些很酷的选项,可以用latex生成好看的表格。您可以做的一件事是使用stargazer中的covariate.labels参数将变量名更改为数学表示法:
这将输出一个latex表代码:
library(stargazer)
beta = 1:3*0.05
df = data.frame(Parameter = c("beta0", "beta1", "beta2"),
Estimate = beta, row.names = 1)
stargazer(t(df), covariate.labels = c(NA, "$\\beta_{0}$", "$\\beta_{1}$", "$\\beta_{2}$"),
header = FALSE, summary = FALSE)
可以复制并粘贴代码以呈现latex表
还请注意,stargazer中type=的默认值是latex,它生成latex代码,但您也可以指定type=text以在控制台中生成表。但是,此选项不允许渲染数学符号
\begin{table}[!htbp] \centering
\caption{}
\label{}
\begin{tabular}{@{\extracolsep{5pt}} cccc}
\\[-1.8ex]\hline
\hline \\[-1.8ex]
& $\beta_{0}$ & $\beta_{1}$ & $\beta_{2}$ \\
\hline \\[-1.8ex]
Estimate & $0.050$ & $0.100$ & $0.150$ \\
\hline \\[-1.8ex]
\end{tabular}
\end{table}
使用我的软件包的另一个选项:
stargazer(t(df), covariate.labels = c(NA, "$\\beta_{0}$", "$\\beta_{1}$", "$\\beta_{2}$"),
header = FALSE, summary = FALSE, type = "text")
# ==========================
# 0 1 2
# --------------------------
# Estimate 0.050 0.100 0.150
# --------------------------
你为什么要这么做?您的实际目标是什么?您可以将字符串存储在数据帧中,或者您可以在测试版中使用Unicode。对于实际的LaTex,也许可以使用RMarkdown和LaTex在文档中插入数据框,并使用所需的符号。我不认为您可以在R控制台中直接在数据帧的列中显示LaTex。也许您想要的是这样的东西:扩展@John Coleman使用unicode的建议,提供了如何在R中使用数据帧的示例。
\begin{table}[!htbp] \centering
\caption{}
\label{}
\begin{tabular}{@{\extracolsep{5pt}} cccc}
\\[-1.8ex]\hline
\hline \\[-1.8ex]
& $\beta_{0}$ & $\beta_{1}$ & $\beta_{2}$ \\
\hline \\[-1.8ex]
Estimate & $0.050$ & $0.100$ & $0.150$ \\
\hline \\[-1.8ex]
\end{tabular}
\end{table}
stargazer(t(df), covariate.labels = c(NA, "$\\beta_{0}$", "$\\beta_{1}$", "$\\beta_{2}$"),
header = FALSE, summary = FALSE, type = "text")
# ==========================
# 0 1 2
# --------------------------
# Estimate 0.050 0.100 0.150
# --------------------------
library(huxtable)
dfr = data.frame(Parameter = c("$\\beta_{0}$", "$\\beta_{1}$", "$\\beta_{2}$"),
Estimate = 'beta')
ht <- as_hux(dfr)
escape_contents(ht) <- FALSE
ht # will print as TeX within a markdown pdf_document