使用Rstudio和knitr以pdf格式生成乳胶表,如何使宽表适合页面?我基本上都在寻找缩小表格的方法.
使用数字,在Knitr中使用out.width =非常容易,但是使用表格我似乎无法找到方法.
有什么建议?
\documentclass{article}
\begin{document}
Run Code Online (Sandbox Code Playgroud)
下表太宽,不适合pdf.我希望有一种简单的方法可以缩小它们以适应它们.在这个例子中,我使用了从xtable(),stargazer()和latex()函数生成的表.
<<message=FALSE>>=
library(xtable)
library(stargazer)
library(Hmisc)
library(tables)
wide.df <- cbind(iris[1:10,],iris[1:10,],iris[1:10,])
@
<<results='asis'>>=
xtable(wide.df)
@
<<results='asis'>>=
stargazer(wide.df,summary=FALSE)
@
<<results='asis'>>=
latex( tabular( Species ~ (Sepal.Length +Sepal.Length + Sepal.Width + Petal.Length + Petal.Width )*(mean + sd + mean + mean ) , data=iris) )
@
\end{document}
Run Code Online (Sandbox Code Playgroud)
遵循Stat-R的建议我尝试使用resizebox但无法使其工作:
\documentclass{article}
\usepackage{graphicx}
\begin{document}
Run Code Online (Sandbox Code Playgroud)
我试过使用reshapebox,但我真的对如何让它在Rstudio/knitr中工作毫无头绪:
<<message=FALSE>>=
library(xtable)
wide.df <- cbind(iris[1:10,],iris[1:10,],iris[1:10,])
@
\resizebox{0.75\textwidth}{!}{%
<<results='asis'>>=
xtable(wide.df)
@
%}
\end{document}
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
! File ended while scanning use of \Gscale@box@dd.
sessioninfo()
R version 3.0.0 (2013-04-03)
Platform: …Run Code Online (Sandbox Code Playgroud) 我一直在努力学习使用Hmisc-package中的summary()函数来生成包含chisquared测试的crosstables.在这个董事会的帮助下,我几乎就在那里.我只是无法弄清楚如何获得行百分比而不是列百分比.
#Data:
v1 <- sample(letters[8:12],200,replace=TRUE)
v2 <- sample(letters[1:2],200,replace=TRUE)
month <- sample(month.name[7:9],200,replace=TRUE)
df <- data.frame(v1,v2,month)
#Table:
latex( summary( month ~ v1 + v2 , data=df, method="reverse" ,test=TRUE), exclude1=FALSE,file="",booktabs=TRUE,long=TRUE)
Run Code Online (Sandbox Code Playgroud)
哪个让我这个:

这让我获得了列百分比.我正在寻找一种方法来扭转它,所以我得到行百分比.我一直在搜索Hmisc文档中的"行"和"列"和"百分比",但没有运气.summary.formular()函数有可选的参数"fun"但是让我做它的行百分比......
请帮忙
在SPSS中,使用"自定义表"创建分类变量的摘要表非常容易:

我怎么能在R中这样做?
一般和可扩展的解决方案是首选,使用Plyr和/或Reshape2包的解决方案,因为我试图了解这些.
示例数据:( mtcars在R安装中)
df <- colwise(function(x) as.factor(x) ) (mtcars[,8:11])
Run Code Online (Sandbox Code Playgroud)
PS
请注意,我的目标是将所有内容放在一张桌子中,如图所示.我已经玩了好几个小时,但我的尝试一直很糟糕,发布代码可能不会增加问题的可理解性.
我想从逻辑回归模型列表中提取标准错误.
glmfunk <- function(x) glm( ldata$DFREE ~ x , family=binomial)
Run Code Online (Sandbox Code Playgroud)
glmkort <- lapply(ldata[,c(2,3,5,6,7,8)],glmfunk)
Run Code Online (Sandbox Code Playgroud)
sapply(glmkørt, "[[", "coefficients")
Run Code Online (Sandbox Code Playgroud)
但是我如何提取系数的标准误差?我似乎无法在str(glmkort)中找到它?
这是AGE的str(glmkort),我正在寻找标准错误:
str(glmkort)
List of 6
$ AGE :List of 30
..$ coefficients : Named num [1:2] -1.17201 -0.00199
.. ..- attr(*, "names")= chr [1:2] "(Intercept)" "x"
..$ residuals : Named num [1:40] -1.29 -1.29 -1.29 -1.29 4.39 ...
.. ..- attr(*, "names")= chr [1:40] "1" "2" "3" "4" ...
..$ fitted.values : Named num [1:40] 0.223 0.225 0.225 0.225 0.228 …Run Code Online (Sandbox Code Playgroud) 我有一个包含100个变量的数据框,其中我想要一个子集,比如dataframename [,30:50]要转换为它们的原始数值(1,2,3,4,5).
我知道我应该as.numeric(levels(f))[f]在转换因子时使用,但我只能在一次转换因子时才能使用.我想立刻转换它们.
这不会工作:
as.numeric(levels(dataframename[,30:50]))[dataframename[,30:50]]
Run Code Online (Sandbox Code Playgroud)
这也不会:
sapply(dataframename[,30:50],as.numeric(levels(dataframename[,30:50]))
[dataframename[,30:50]]
Run Code Online (Sandbox Code Playgroud)
我应该阅读的任何想法或内容?