【问题标题】:Capture R output and replace with LaTeX code捕获 R 输出并用 LaTeX 代码替换
【发布时间】:2015-06-27 10:32:21
【问题描述】:

我正在尝试捕获一些 R 代码的输出并将其替换为乳胶代码。

如果你运行这段代码:

library(stargazer)
x <- capture.output(stargazer(mtcars[1:5, 1:3], summary = FALSE, title="The main caption of the table."))

x

这是输出:

 [1] ""                                                                                                         
 [2] "% Table created by stargazer v.5.1 by Marek Hlavac, Harvard University. E-mail: hlavac at fas.harvard.edu"
 [3] "% Date and time: Sat, Jun 27, 2015 - 11:36:07"                                                            
 [4] "\\begin{table}[!htbp] \\centering "                                                                       
 [5] "  \\caption{The main caption of the table.} "                                                             
 [6] "  \\label{} "                                                                                             
 [7] "\\begin{tabular}{@{\\extracolsep{5pt}} cccc} "                                                            
 [8] "\\\\[-1.8ex]\\hline "                                                                                     
 [9] "\\hline \\\\[-1.8ex] "                                                                                    
[10] " & mpg & cyl & disp \\\\ "                                                                                
[11] "\\hline \\\\[-1.8ex] "                                                                                    
[12] "Mazda RX4 & $21$ & $6$ & $160$ \\\\ "                                                                     
[13] "Mazda RX4 Wag & $21$ & $6$ & $160$ \\\\ "                                                                 
[14] "Datsun 710 & $22.800$ & $4$ & $108$ \\\\ "                                                                
[15] "Hornet 4 Drive & $21.400$ & $6$ & $258$ \\\\ "                                                            
[16] "Hornet Sportabout & $18.700$ & $8$ & $360$ \\\\ "                                                         
[17] "\\hline \\\\[-1.8ex] "                                                                                    
[18] "\\end{tabular} "                                                                                          
[19] "\\end{table} " 

我需要用这个替换第 5 行:

"  \\caption[short caption]{The main caption of the table.} "

我该怎么做?

【问题讨论】:

  • x &lt;- sub("\\caption{The main caption of the table.}", "\\caption[short caption]{The main caption of the table.}", fixed = TRUE, x) ?
  • @StevenBeaupré 想要添加它作为答案?

标签: r string stargazer


【解决方案1】:

试试:

x <- sub("\\caption{The main caption of the table.}", 
         "\\caption[short caption]{The main caption of the table.}", fixed = TRUE, x)

【讨论】:

    【解决方案2】:

    这与您的想法有些不同,但也许您可以只使用具有 caption.width 参数的 xtable,例如:

    print.xtable(xtable(mtcars[1:5, 1:3],
                        caption="The main caption of the table"),
                 caption.width="10cm",
                 caption.placement="top")
    

    输出不会完全移植到你想要的,但如果你喜欢更简洁的代码,也许你可以根据你的目的改变它;来自?print.xtable

    如果 caption.width 不为 NULL 并且 type="latex",则标题将被放置在指定宽度的“parbox”中。默认值为 NULL。

    这是输出:

    % latex table generated in R 3.1.3 by xtable 1.7-4 package
    % Tue Jun 30 14:52:06 2015
    \begin{table}[ht]
    \centering
    \parbox{5cm}{\caption{The main caption of the table}} 
    \begin{tabular}{rrrr}
      \hline
     & mpg & cyl & disp \\ 
      \hline
    Mazda RX4 & 21.00 & 6.00 & 160.00 \\ 
      Mazda RX4 Wag & 21.00 & 6.00 & 160.00 \\ 
      Datsun 710 & 22.80 & 4.00 & 108.00 \\ 
      Hornet 4 Drive & 21.40 & 6.00 & 258.00 \\ 
      Hornet Sportabout & 18.70 & 8.00 & 360.00 \\ 
       \hline
    \end{tabular}
    \end{table}
    

    您还必须弄乱其他选项(例如,digits)以获取表格其余部分的确切格式以匹配来自 stargazer 的格式,具体取决于您的格式到底是什么想到了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-27
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多