【问题标题】:R- tables package - error subscript out of boundsR-tables包-错误下标越界
【发布时间】:2015-02-11 09:21:50
【问题描述】:

我需要创建一个精美的表格并将其导出为 png。我正在尝试 R 中的表格包。我需要按与其他人相比具有积极变化的代理组(“代理”)对“变异”进行分组。我想要满足这些条件的均值、标准差和代理数量

我的桌子是:

  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

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

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

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]] 中的错误:下标超出范围

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

【问题讨论】:

  • 好吧,如果您避免像*+ 或*++ 这样的简单语法错误可能会有所帮助,这些错误出现在您的两次失败尝试中。但更广泛地说,我根本无法理解您首先要制作什么样的桌子。或许你可以用文字更清楚地描述它?
  • “我需要按月份分组” -> 哪个是月份变量?
  • 嗨@Ricky,谢谢。我粘贴了我需要的表格并进行了更好的解释。
  • 你通过vignette了吗?有很多有用的例子

标签: r formatting


【解决方案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   

给我

【讨论】:

    【解决方案2】:

    不美化结果:

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

    【讨论】:

      猜你喜欢
      • 2015-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多