> 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
我正在尝试在data.frame中编写数学符号,但似乎两者不兼容。有办法解决这个问题吗?
我也试过
> data.frame(Parameters = paste(expression(beta[1])))
Parameters
1 beta[1]
答案 0 :(得分:1)
如果您想在数据框内存储这些符号的乳胶代码,那么可以从xtable
生成正确的乳胶代码,您需要通过输入来覆盖print.xtable
中的清理功能虚函数,准确返回输入(参见这个问题:Using xtable with R and Latex, math mode in column names?):
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})
乳胶表:
\begin{table}[ht]
\centering
\begin{tabular}{rrrr}
\hline
& $\beta_{0}$ & $\beta_{1}$ & $\beta_{2}$ \\
\hline
Estimate & 0.05 & 0.10 & 0.15 \\
\hline
\end{tabular}
\end{table}
与xtable
类似,stargazer
有一些很酷的选项可以在latex中生成漂亮的表格。您可以做的一件事是使用covariate.labels
中的stargazer
参数将变量名称更改为数学符号:
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)
输出乳胶表代码:
\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}
您可以复制并粘贴代码here以呈现乳胶表。
另请注意,type=
中stargazer
的默认值为"latex"
,会生成乳胶代码,但您也可以指定type="text"
在控制台中生成表格。但是,此选项不允许您渲染数学符号。
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
# --------------------------
答案 1 :(得分:1)
使用我的包裹的另一个选择:
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
答案 2 :(得分:-3)
我不太确定你在这里想做什么。如果您尝试使用名为&#34;参数&#34;的列创建数据框df。使用从列表beta中的向量获取的值,然后下面的代码将完成工作。
df = data.frame(Parameters = beta[[1]])
# Assuming that the first object in beta is a vector that you want to set as "Paramters" column.
如果这不是您要找的对象,请提供有关这些对象的更多信息。