R-表包 - 错误下标超出范围

时间:2014-12-12 16:03:32

标签: r formatting

我需要创建一个花哨的表并将其导出为png。我在R中尝试使用表格包。我需要分组" variacion"由代理人组成的团队(" agentes")与其他人相比具有正变化。我想要平均值,sd和满足这些条件的代理人数

我的表是:

  agente mes1 mes2   variacion
1     a1 0.50 0.60  0.20000000
2     a2 0.70 0.65 -0.07142857
3     a3 0.60 0.75  0.25000000
4     a4 0.80 0.60 -0.25000000
5     a5 0.78 0.90  0.15384615

我的输出应该是(包括格式):

enter image description here

您可以通过以下方式获得这些数字:

sd(t_agentes1$variacion[t_agentes1$variacion<=0]) 

结果是表sd中的最后一个数字:0.126

所以在表库中:

library(tables)
X<-t_agentes1$variacion

latex( tabular( (X > 0) + (X < 0) + 1
                  + ~ ((n = 1) + X*(mean + sd + length)) ) )

但我收到错误:

  

二元运算符的非数字参数

当我尝试包的第一个例子时,我得到了同样的错误

  

表格((物种+ 1)〜(n = 1)+格式(数字= 2)*       + +(Sepal.Length + Sepal.Width)*(mean + sd),data = iris)       e [[3]]:下标超出范围

时出错

我真的不明白这个包的参数。有没有办法进行分组?我真的迷失了,所以任何帮助都会非常感激。感谢。

2 个答案:

答案 0 :(得分:1)

X <- read.table(header = TRUE, text="agente mes1 mes2   variacion
1     a1 0.50 0.60  0.20000000
2     a2 0.70 0.65 -0.07142857
3     a3 0.60 0.75  0.25000000
4     a4 0.80 0.60 -0.25000000
5     a5 0.78 0.90  0.15384615")

X <- within(X, variation <- factor(variacion > 0, levels = c(TRUE, FALSE),
                                   labels = c('variation > 0',
                                              'variation <= 0')))
library(tables)
# latex(
#   tabular(Heading() * variation ~ 
#             Justify(l) * (Heading() * Format(digits = 2) * variacion * (mean + sd) + (number = (n = 1))),
#           data = X))

latex(
  tabular(Heading() * variation ~ 
            Justify(l) * (Heading() * variacion * (Format(digits = 2) * mean + Format(digits = 2) *sd) + (number = (n = 1))),
          data = X))

#                     mean  sd     number
# variation $>$ 0     0.20  0.048  3     
# variation $\\leq$ 0 -0.16 0.126  2   

给我

enter image description here

答案 1 :(得分:0)

没有美化结果:

tabular((X > 0) + (X < 0) ~ mean*X + sd*X + length*X)