我遇到的问题是Stargazer函数将data.frame中的数据解释为latex命令。我想找到一种方法来抑制观星者的这个特征。见下文。
z <- c("Bank of America Corp",
"Citigroup Inc",
"JPMorgan Chase & Co",
"Morgan Stanley",
"Wells Fargo & Co")
s <- data.frame(z=z, l= c(100000, 25, 10000, 24, 100000))
library(stargazer)
stargazer(s, type = "text", summary = FALSE)
# prints out
==============================
z l
------------------------------
1 Bank of America Corp 100,000
2 Citigroup Inc 25
3 JPMorgan Chase Co
4 Morgan Stanley 24
5 Wells Fargo Co
------------------------------
这里的&符号由于其在乳胶中的含义而导致新的列被假定。我确认了这一点,因为更换了&amp;使用并使表格正确打印出来。
z <- c("Bank of America Corp",
"Citigroup Inc",
"JPMorgan Chase and Co",
"Morgan Stanley",
"Wells Fargo and Co")
s <- data.frame(z=z, l= c(100000, 25, 10000, 24, 100000))
library(stargazer)
stargazer(s, type = "text", summary = FALSE)
# prints out
===============================
z l
-------------------------------
1 Bank of America Corp 100,000
2 Citigroup Inc 25
3 JPMorgan Chase and Co 10,000
4 Morgan Stanley 24
5 Wells Fargo and Co 100,000
-------------------------------
我可以在stargazer函数中调用任何选项来阻止此行为吗?
答案 0 :(得分:4)
目前版本的stargazer似乎没有这个选项。如果检查源代码,您将找到以下代码块(第4704行):
############## TEXT AND html MODE ##############
.split.line <- # split line of a LaTeX table into constituent parts separated by &
function(s) {
# remove the "\\\\"
s <- gsub("\\\\", "", s, fixed=TRUE)
s <- paste(" ",s," ", sep="")
return(.trim(strsplit(s, " &", fixed=TRUE)[[1]]))
}
所以,显然,这似乎被硬编码为stargazer格式化表输出的方式,并且不会被命令的任何选项捕获。
如果您只是想格式化一个类似于您在示例中发布的数据框的数据框,我会使用print.xtable()
包中的xtable
,它具有正确处理字符串中的&符号的清理函数为建议的示例数据框生成正确的LaTeX和HTML outupt。