Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用R中的print.xtable按行设置数字?_R_Rounding_Knitr_Xtable - Fatal编程技术网

用R中的print.xtable按行设置数字?

用R中的print.xtable按行设置数字?,r,rounding,knitr,xtable,R,Rounding,Knitr,Xtable,我得到了一些报告,其中有一些表格,其中包含比例和绝对值。 现在,我想以digits=2精度显示包含比例的行,而绝对值仅以digits=0显示。我知道使用xtable 用这样的电话 xtable(tableWith3Cols,digits=c(0,0,2,2)) 但是有没有办法按行做同样的事情呢 编辑: 这里有一个可复制的例子 require(xtable) df <- data.frame(col1=rnorm(10),col2=runif(10,1,3)) xtable(df,digi

我得到了一些报告,其中有一些表格,其中包含比例和绝对值。 现在,我想以
digits=2
精度显示包含比例的行,而绝对值仅以
digits=0
显示。我知道使用
xtable
用这样的电话

xtable(tableWith3Cols,digits=c(0,0,2,2))
但是有没有办法按行做同样的事情呢

编辑: 这里有一个可复制的例子

require(xtable)
df <- data.frame(col1=rnorm(10),col2=runif(10,1,3))
xtable(df,digits=c(0,5,0))
这是列案例的解决方案。我得到两个不同的数字列,一个是5位数,另一个是完全四舍五入


我想要的是例如:第2行和第10行5位所有其他0位。

我的矩阵生成技能不是最优雅的,但这就是你想要的吗

require(xtable)
df <- data.frame(col1=rnorm(10),col2=runif(10,1,3))
mdat <- matrix(c(rep(0,3), 0, 5, 0, rep(0, (7*3)), 0, 5, 0), 
                 nrow = 10, ncol=3, byrow=TRUE)
xtable(df,digits=mdat)
% latex table generated in R 2.15.1 by xtable 1.7-0 package
% Fri Jan 18 15:52:41 2013
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrr}
  \hline
 & col1 & col2 \\ 
  \hline
  1  &      -0 & 3 \\ 
  2  & 1.16203 & 1 \\ 
  3  &       1 & 2 \\ 
  4  &       0 & 2 \\ 
  5  &       0 & 2 \\ 
  6  &      -1 & 2 \\ 
  7  &       1 & 2 \\ 
  8  &       1 & 2 \\ 
  9  &      -1 & 2 \\ 
  10 & 0.63731 & 2 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}
require(xtable)

一个可复制的例子会增加你得到有用答案的机会…很难复制你不能做的事情。当然,当你鼓励尝试制作一些可复制的东西时,你总是对的。谢谢你的屁股!哈!你超越了一切。(我只是想问你想要打印的R对象的一个例子。)我怀疑你可以通过创建两个表,一个有5位数字,一个有两位数字,然后用
print(xtable.5digits[1:5,],only.contents=TRUE)和
print(xtable.0digits[6:10,],only.contents=TRUE)打印它们的不同部分来破解它。
。不过,这会很难看。确实非常有用,这正是我想要的。也许你应该给包的作者一个提示。我的意思是,文档几乎不鼓励尝试这种方法。总之,你的建议帮了大忙@马特班纳特,我通过阅读
?xtable
帮助文件找到了答案。在阅读“或与结果表大小相同的矩阵,指示相应列中要显示的位数”之前,我不知道这一点(
?xtable::xtable
)。或在帮助文件中以粗体显示。不管怎样,我经常忽略帮助文件中的内容。谢谢你的提示。对不起,太吵了!对于后一种情况(我认为OP的目的)的较短解决方案是设置
mdat
require(xtable)
df <- data.frame(col1=rnorm(10),col2=runif(10,1,3))
mdat <- matrix(c(rep(0,3), 0, 5, 0, rep(0, (7*3)), 0, 5, 0), 
                 nrow = 10, ncol=3, byrow=TRUE)
xtable(df,digits=mdat)
% latex table generated in R 2.15.1 by xtable 1.7-0 package
% Fri Jan 18 15:52:41 2013
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrr}
  \hline
 & col1 & col2 \\ 
  \hline
  1  &      -0 & 3 \\ 
  2  & 1.16203 & 1 \\ 
  3  &       1 & 2 \\ 
  4  &       0 & 2 \\ 
  5  &       0 & 2 \\ 
  6  &      -1 & 2 \\ 
  7  &       1 & 2 \\ 
  8  &       1 & 2 \\ 
  9  &      -1 & 2 \\ 
  10 & 0.63731 & 2 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}
require(xtable)
df <- data.frame(col1=rnorm(10),col2=runif(10,1,3))
mdat <- matrix(c(rep(0,3),rep(5,3), rep(0, (7*3)), rep(5,3)),
                 nrow = 10, ncol=3, byrow=TRUE)
xtable(df,digits=mdat)
% latex table generated in R 2.15.1 by xtable 1.7-0 package
% Fri Jan 18 16:00:12 2013
\begin{table}[ht]
\begin{center}
\begin{tabular}{rrr}
  \hline
 & col1 & col2 \\ 
  \hline
  1  &       -0 & 1       \\ 
  2  &  1.36652 & 2.10159 \\ 
  3  &        0 & 2       \\ 
  4  &       -2 & 2       \\ 
  5  &       -1 & 2       \\ 
  6  &        0 & 2       \\ 
  7  &       -0 & 2       \\ 
  8  &       -0 & 1       \\ 
  9  &       -1 & 2       \\ 
  10 & -0.44182 & 2.09663 \\ 
   \hline
\end{tabular}
\end{center}
\end{table}