我正在尝试使用stargazer软件包在乳胶中输出数据帧。我希望列名称包含乳胶代码,但是stargazer不允许在数据框名称中包含乳胶代码。我也尝试过使用column.labels参数,但是此参数仅用于回归表,而不用于输出数据帧。这是我尝试过的两种方法。两者都不起作用。

第一种方法-尝试更改数据框中的变量名称

码:

# Creating a data frame
df = data.frame(x = 1:5, y = 6:10)

# Changing names
names(df) = c("$X$", "$Y$\\textsuperscript{1}")

# Exporting
stargazer(df, summary = F,
  notes = "\\textsuperscript{1} This is a note that was supposed to refer to $Y$.")


输出(显然,注视者无法识别LaTeX代码):

% Table created by stargazer v.5.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
% Date and time: Sat, Oct 29, 2016 - 20:46:22
\begin{table}[!htbp] \centering
  \caption{}
  \label{}
\begin{tabular}{@{\extracolsep{5pt}} ccc}
\\[-1.8ex]\hline
\hline \\[-1.8ex]
 & \$X\$ & \$Y\$\textbackslash textsuperscript\{1\} \\
\hline \\[-1.8ex]
1 & $1$ & $6$ \\
2 & $2$ & $7$ \\
3 & $3$ & $8$ \\
4 & $4$ & $9$ \\
5 & $5$ & $10$ \\
\hline \\[-1.8ex]
\end{tabular}
\end{table}


第二种方法–尝试使用column.labels参数

码:

# Creating a data frame
df = data.frame(x = 1:5, y = 6:10)

# Exporting
stargazer(df, summary = F,
  column.labels = c("$X$", "$Y$\\textsuperscript{1}"),
  notes = "\\textsuperscript{1} This is a note that was supposed to refer to $Y$.")


输出(占星师只是忽略了该参数):

% Table created by stargazer v.5.2 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu
% Date and time: Sat, Oct 29, 2016 - 20:57:41
\begin{table}[!htbp] \centering
  \caption{}
  \label{}
\begin{tabular}{@{\extracolsep{5pt}} ccc}
\\[-1.8ex]\hline
\hline \\[-1.8ex]
 & x & y \\
\hline \\[-1.8ex]
1 & $1$ & $6$ \\
2 & $2$ & $7$ \\
3 & $3$ & $8$ \\
4 & $4$ & $9$ \\
5 & $5$ & $10$ \\
\hline \\[-1.8ex]
\multicolumn{3}{l}{\textsuperscript{1} This is a note that was supposed to refer to $Y$.} \\
\end{tabular}
\end{table}

最佳答案

有点古怪,但是这里的主要思想是使用所需的Latex代码在gsub输出中stargazer的相关行:

# Creating a data frame
df = data.frame(x = 1:5, y = 6:10)

out <- capture.output(
  stargazer(df, summary = F,
    notes = "\\textsuperscript{1} This is a note that was supposed to refer to $Y$.")
)

# Changing names
vars = c("x" = "$X$", "y" = "$Y$\\\\textsuperscript{1}")
cat(sep = "\n",
  gsub(paste(names(vars), collapse = " & "), paste(vars, collapse = " & "), out)
)
# \begin{table}[!htbp] \centering
#   \caption{}
#   \label{}
# \begin{tabular}{@{\extracolsep{5pt}} ccc}
# \\[-1.8ex]\hline
# \hline \\[-1.8ex]
#  & $X$ & $Y$\textsuperscript{1} \\
# \hline \\[-1.8ex]
# 1 & $1$ & $6$ \\
# 2 & $2$ & $7$ \\
# 3 & $3$ & $8$ \\
# 4 & $4$ & $9$ \\
# 5 & $5$ & $10$ \\
# \hline \\[-1.8ex]
# \multicolumn{3}{l}{\textsuperscript{1} This is a note that was supposed to refer to $Y$.} \\
# \end{tabular}
# \end{table}




使用参数align = T时,请尝试

vars = sprintf("\\\\multicolumn\\{1\\}\\{c\\}\\{%s\\}",
  c("$X$", "$Y$\\\\textsuperscript{1}"))
names(vars) <- sprintf("\\\\multicolumn\\{1\\}\\{c\\}\\{%s\\}", names(df))
cat(sep = "\n",
  gsub(paste(names(vars), collapse = " & "), paste(vars, collapse = " & "), out)
)

关于r - 打印数据框时如何在观星台中更改列名?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40325944/

10-12 16:30
查看更多