当 summary=F 且字符串包含“&”时,Stargazer 将字符字段拆分为列

Stargazer splits character field into columns when summary=F and string contains "&"

当 summary=F 并且字符列包含包含 & 的元素时,如何打印 stargazer table? summary=F 逐字打印数据 table,这正是我想要的。

这是按预期打印的情况:

> stargazer::stargazer(
+   data.frame(ur1=c('hot','tamale'),yum='!')
+   ,type='text',summary=F)

============
   ur1   yum
------------
1  hot    ! 
2 tamale  ! 
------------

这里 & 被分成两列。

> stargazer::stargazer(
+   data.frame(ur1=c('hot & tamale'),yum='!')
+   ,type='text',summary=F)

============
  ur1  yum  
------------
1 hot tamale
------------

同样的行为也发生在 html 和乳胶模式中。在乳胶中,通过注释掉 & a la gsub(x,pattern='&',replacement='\&',fixed=T) 很容易破解一个字符的修复,但该修复不适用于 html 并将其替换为实体 & 仍然导致分裂。虽然使用 kable 或简单的降价来打印 table 很容易,但我希望我的这种 table 具有与观星者回归 tables 相同的风格.

希望有人能帮忙!另外,如果它是一个错误,我找不到一个开发 repo 来报告它。

我有最新版的 stargazer:

> devtools::session_info()
Session info ------------------
 setting  value                       
 version  R version 3.4.4 (2018-03-15)
 system   x86_64, linux-gnu           
 ui       RStudio (1.1.419)           
 language (EN)                        
 collate  en_US.UTF-8                 
 tz       Etc/UTC                     
 date     2018-09-14                  

Packages ----------------------
 stargazer     5.2.2      2018-05-30 CRAN (R 3.4.4)                   

这是一个非常 hacky 的解决方案,但您可以在 & 之前插入一个制表符 (\t) 和一个退格符 (\b) 转义序列。这似乎适用于 type = "text"type = "html",但不适用于 type = "latex"

dat <- data.frame(ur1=c('hot & tamale', 'hot & taco') ,yum='!')
dat[, 1] <- gsub("&", "\t\b&", dat[, 1])

stargazer::stargazer(dat, type = "text", summary=F)
====================
       ur1       yum
--------------------
1 hot & tamale  ! 
2  hot & taco   ! 
--------------------