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

问题描述 投票:0回答:1

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

这是一个按预期打印的情况:

> 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和latex模式中也会发生相同的行为。在乳胶中,很容易通过评论&和lagsub(x,pattern='&',replacement='\\&',fixed=T)来破解角色的修复但是该修复不适用于html并且用实体&替换它仍然导致分裂。虽然使用kable或简单的markdown来打印表格很容易,但我希望我的这种表格与stargazer回归表具有相同的风格。

我希望有人能帮帮忙!此外,如果它是一个错误,我找不到报告它的开发回购。

我有最新版的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)                   
r stargazer
1个回答
0
投票

这是一个非常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   ! 
--------------------
© www.soinside.com 2019 - 2024. All rights reserved.