在格式化位数时转置 xtable

Posted

技术标签:

【中文标题】在格式化位数时转置 xtable【英文标题】:Transpose xtable while formatting number of digits 【发布时间】:2014-02-08 18:41:45 【问题描述】:

我有一个包含 2 行(预处理/后处理)和 11 列的数据框,我想将其显示为 11x2 表。以下内容很好地完成了这项工作:

print(xtable(t(df)))

但是,我不知道如何控制位数并完成转置。后 xtable 转置可能吗?

df <- xtable(df)
digits(df) <- c(0,0,0,1,0,1,2,0,1,0,0,2)
t(df) # Does not work; is a post-xtable transpose possible?

我也尝试过在创建 xtable 之前进行转置,然后单独更改行的数字,但也无法使其正常工作,即

df <-xtable(t(df)) # works as intended
digits(df[10,]) <- c(0,1,1) # no error, but does nothing

一般的挑战是,在决赛桌中,我需要在同一列的行中使用不同的小数位数。这让我认为可能需要第一种方法的某些版本,以便可以使用标准的 xtable 数字控件(即Control number of decimal places on xtable output in R)

【问题讨论】:

在这种情况下,我将所有内容逐行转换为字符向量,我可以在其中控制位数。 我会编辑数字的表示并在强制转换为 xtable 之前转置。尝试使用round @BrandonBertelsen 有没有一种方法可以像digits() 那样一步完成这一切? 【参考方案1】:

一个问题是您的“数字”参数有 12 项长。去掉前导的“0”可以减少警告:

 df <- as.data.frame(matrix(rnorm(22), nrow=2))
 print(xtable(t( mapply("format", df, digits=c(0,0,1,0,1,2,0,1,0,0,2)))))

% latex table generated in R 3.0.2 by xtable 1.7-1 package
% Sat Feb  8 11:37:06 2014
\begintable[ht]
\centering
\begintabularrll
  \hline
 & 1 & 2 \\ 
  \hline
V1 & 0 & 0 \\ 
  V2 & 0 & 1 \\ 
  V3 &  2.1 & -0.5 \\ 
  V4 & -2 &  1 \\ 
  V5 & -0.7 & -0.7 \\ 
  V6 &  1.03 & -0.28 \\ 
  V7 & -1 &  0 \\ 
  V8 & -0.139 &  0.006 \\ 
  V9 &  0 & -0 \\ 
  V10 &  1 & -0 \\ 
  V11 & 0.33 & 1.10 \\ 
   \hline
\endtabular
\endtable

矩阵和 data.frames 的转置函数似乎强制数字宽度的列统一(或者可能是它们的打印方法?

这是一个非常笨拙的努力:

 capture.output(apply(cbind(t(df), digits), 1, function(x) 
                                            cat( c(round( x[1:2], x[3]) ,"\n") ) )  )
 [1] "0 0 "        "0 1 "        "2.1 -0.5 "   "-2 1 "       "-0.7 -0.7 " 
 [6] "1.03 -0.28 " "-1 0 "       "-0.1 0 "     "0 0 "        "1 0 "       
[11] "0.33 1.1 "   "NULL"   

【讨论】:

谢谢,这就行了。有趣的是,digits 参数在您的示例中的功能似乎与 xtable 不同:对于“格式”,它等于所需位数的总数,而对于 xtable,它等于小数点右侧所需的位数点。 我认为它以行为基础给出了有效数字的最小数量。

以上是关于在格式化位数时转置 xtable的主要内容,如果未能解决你的问题,请参考以下文章

未对特征图进行下采样时转置卷积的必要性

xtable 用于条件单元格格式化表格的重要 p 值

matlib调用python时转py格式为matlib格式

如何以特定格式转置 SQL 中的表?

Gson对象转json时,属性值不存在时转成的null问题??

Excel PowerQuery:如何将巨大的表格反透视或转置为可读格式以进行分析