【问题标题】:Multicolumn issues in stargazer rstargazer r中的多列问题
【发布时间】:2020-05-28 19:20:08
【问题描述】:

我正在尝试在rmarkdown 中写一篇研究论文,其中我正在尝试使用stargazer 包创建一个summary stat 表,但是当我包含参数notes = c("All variables are defined in Appendix A.", "All continuous variables are winsorized at 1% and 99%.", "The pctl(25(75) corresponds to 25% (75%) percentile.") 时它向我显示以下错误在stargazer -

! File ended while scanning use of \multicolumn.
<inserted text> 
                \par 
<*> sample_articles.tex

下面是我的tex文件中针对上述问题的表格部分-

\begin{table}[!htbp] \centering 
  \caption{Summary Stat of Variables} 
  \label{} 
\tiny 
\begin{tabular}{@{\extracolsep{-5pt}}lcccccc} 
\\[-1.8ex]\hline 
\hline \\[-1.8ex] 
Statistic & \multicolumn{1}{c}{N} & \multicolumn{1}{c}{Mean} & \multicolumn{1}{c}{St. Dev.} & \multicolumn{1}{c}{Pctl(25)} & \multicolumn{1}{c}{Median} & \multicolumn{1}{c}{Pctl(75)} \\ 
\hline \\[-1.8ex] 
DEGREE & 19,114 & 67.7 & 15.7 & 56.3 & 68.7 & 79.7 \\ 
EIGENVECTOR & 19,114 & 61.6 & 20.1 & 48.7 & 64 & 77 \\ 
BETWEENNESS & 19,114 & 67.8 & 23.7 & 53.0 & 72.8 & 87.0 \\ 
CLOSENESS & 19,114 & 61.2 & 21.9 & 46.1 & 63 & 78 \\ 
OVERALLCENTRALITY & 19,114 & 67.4 & 21.6 & 51.8 & 71 & 85 \\ 
LNASSETS & 19,114 & 6.9 & 2.2 & 5.5 & 7.0 & 8.4 \\ 
LEVERAGE & 19,114 & 0.5 & 0.3 & 0.4 & 0.5 & 0.7 \\ 
INVREC & 19,114 & 0.2 & 0.2 & 0.1 & 0.2 & 0.3 \\ 
LOSS & 19,114 & 0.3 & 0.4 & 0 & 0 & 1 \\ 
ROA & 19,114 & 1.1 & 22.3 & $-$0.01 & 4.9 & 10.6 \\ 
ZSCORE & 19,114 & 0.9 & 0.9 & 0 & 1 & 2 \\ 
MERGER & 19,114 & 0.4 & 0.5 & 0 & 0 & 1 \\ 
MTB & 19,114 & 3.0 & 4.7 & 1.3 & 2.1 & 3.6 \\ 
FOREIGN & 19,114 & 0.5 & 0.5 & 0 & 0 & 1 \\ 
EXTRAORDINARY & 19,114 & 0.01 & 0.1 & 0 & 0 & 0 \\ 
SEGMENT & 19,114 & 2.1 & 0.8 & 1.4 & 2.0 & 2.6 \\ 
SPECIALIZED & 19,114 & 0.3 & 0.5 & 0 & 0 & 1 \\ 
MATERIALWEAKNESS & 19,114 & 0.05 & 0.2 & 0 & 0 & 0 \\ 
RESTATEMENT & 19,114 & 0.1 & 0.3 & 0 & 0 & 0 \\ 
BIGN & 19,114 & 0.8 & 0.4 & 1 & 1 & 1 \\ 
GOINGCONCERN & 19,114 & 0.02 & 0.1 & 0 & 0 & 0 \\ 
CALENDARYEAR & 19,114 & 0.8 & 0.4 & 1 & 1 & 1 \\ 
LNNONAUDFEES & 19,114 & 11.9 & 1.8 & 10.7 & 12.0 & 13.2 \\ 
LNAUDFEES & 19,114 & 14.0 & 1.3 & 13.2 & 14.0 & 14.8 \\ 
AUDTURNOVER & 19,114 & 0.1 & 0.2 & 0 & 0 & 0 \\ 
RESTRUCTURE & 19,114 & $-$0.002 & 0.1 & $-$0.001 & 0.0 & 0.0 \\ 
LITIGATE & 19,114 & 0.3 & 0.4 & 0 & 0 & 1 \\ 
AGE & 19,114 & 3.0 & 0.7 & 2.5 & 3.0 & 3.6 \\ 
AUDITORTENURE & 19,114 & 8.2 & 4.4 & 5 & 8 & 12 \\ 
AUDITLAG & 19,114 & 8.0 & 1.1 & 7.4 & 7.7 & 8.6 \\ 
AUDFEES (ml) & 19,114 & 2.7 & 5.7 & 0.5 & 1.2 & 2.7 \\ 
NAUDFEES (ml) & 19,114 & 0.7 & 2.1 & 0.05 & 0.2 & 0.5 \\ 
\hline \\[-1.8ex] 
\multicolumn{7}{l}{All variables are defined in Appendix A.} \\ 
\multicolumn{7}{l}{All continuous variables are winsorized at level 1% and 99%.} \\ 
\multicolumn{7}{l}{The pctl(25 (75)) corresponds to 25% (75%) percentile.} \\ 
\end{tabular} 
\end{table}

但是,如果我去掉上面的notes 参数,它就可以正常工作。

下面是我在rmarkdown 中的r code,在stargazer 中没有notes 参数 -

sumstat_label <- c(
  "DEGREE", 
  "EIGENVECTOR", 
  "BETWEENNESS", 
  "CLOSENESS", 
  "OVERALLCENTRALITY",
  "LNASSETS",
  "LEVERAGE", 
  "INVREC", 
  "LOSS",
  "ROA", 
  "ZSCORE",
  "MERGER",
  "MTB",
  "FOREIGN",
  "EXTRAORDINARY",
  "SEGMENT",
  "SPECIALIZED",
  "MATERIALWEAKNESS",
  "RESTATEMENT",
  "BIGN",
  "GOINGCONCERN",
  "CALENDARYEAR",
  "LNNONAUDFEES",
  "LNAUDFEES",
  "AUDTURNOVER",
  "RESTRUCTURE",
  "LITIGATE",
  "AGE", 
  "AUDITORTENURE",
  "AUDITLAG", 
  "AUDFEES (ml)",
  "NAUDFEES (ml)")

note_label <- c("All variables are defined in Appendix A.",
                "All continuous variables are winsorized at 1% and 99%.",
                "The pctl(25(75) corresponds to 25% (75%) percentile.")
stargazer(as.data.frame(sum_stat[c(
  "DEGREE", 
  "EIGENVECTOR", 
  "BETWEENNESS", 
  "CLOSENESS", 
  "OVERALLCENTRALITY",
  "LNASSETS",
  "LEVERAGE", 
  "INVREC", 
  "LOSS",
  "ROA", 
  "ZSCORE",
  "MERGER",
  "MTB",
  "FOREIGN",
  "EXTRAORDINARY",
  "SEGMENT",
  "SPECIALIZED",
  "MATERIALWEAKNESS",
  "RESTATEMENT",
  "BIGN",
  "GOINGCONCERN",
  "CALENDARYEAR",
  "LNNONAUDFEES",
  "LNAUDFEES",
  "AUDTURNOVER",
  "RESTRUCTURE",
  "LITIGATE",
  "AGE", 
  "AUDITORTENURE",
  "AUDITLAG", 
  "AUDFEES",
  "NAUDFEES")]),
  summary.stat = c("n", "mean", "sd", "p25", "median", "p75"),
  column.sep.width = "-5pt",
  title= "Summary Stat of Variables", type = "latex",
  digits= 1, 
  header = FALSE,
  notes.align = "l",
  font.size = "small",
  single.row = T,
  no.space = T,
  covariate.labels = sumstat_label
)

有没有人知道如何在表中附加notes 参数和type = latex 中的stargazer。谢谢。

【问题讨论】:

  • 我已经能够解决了。只需更改 notes 参数即可帮助解决问题。我像这样更改 notes 参数 - notes = c("All continuous variables are winsorized at 1 and 99 percent", "All variables are defined in Appendix A", "The Pctl (25 (75) corresponds to 25 and 75 percentile") 。问题在于使用% 符号;我只是把它改成percent这个词。谢谢

标签: r-markdown stargazer


【解决方案1】:

问题是笔记中的“%”符号作为特殊字符传递给 Latex。在 Latex 中,'%' 的意思是“在这里开始评论并忽略百分号之后的所有内容。”一种解决方案是将百分比符号替换为单词 percent 或 percentile(如原作者评论中所述)。

但在某些情况下,符号更可取(例如在我们希望保持简短的标签中)。在这些情况下,“转义”百分号通常会解决问题。 Stargazer 通常非常擅长清理或“清理”特殊字符,但在这种情况下并不总是像 note_label 选项那样。一些可能的解决方案:

  • 尝试使用百分比这个词而不是符号 %,看看是否一切都在编织

  • 尝试在\% 中使用反斜杠百分比,它告诉 Latex 将其视为常规字符而不是特殊字符。

  • R / R Markdown 通常更喜欢使用两个反斜杠(一个用于转义反斜杠,一个用于转义百分比)因此也值得尝试(即\\%),如果其他选项都不起作用

  • 尝试使用Hmisc::latexTranslate() 之类的函数手动清理带有下划线、百分比、^s 等字符的文本字符串。在这里查看更多信息:Function to sanitize strings for LaTeX compilation?

【讨论】:

    猜你喜欢
    • 2023-04-06
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 2021-10-12
    • 1970-01-01
    相关资源
    最近更新 更多