1

我有一个类似于以下结构的数据框:

Trial Index    Condition1    Condition2    Measures
1              A             Y             ...
2              A             Y             ...        
3              B             Y             ...
4              B             Y             ...
5              A             Z             ...
6              A             Z             ...        
7              B             Z             ...
8              B             Z             ...

我想针对 Condition1 和 Condition2 的每个组合以及边距计算一些汇总度量。我可以使用对 ddply 的多次调用来执行此操作,但我想知道是否有一些简单的方法可以从中获取单个数据结构,例如:

Condition1    Condition2    Mean    Median    ....
A             Y             ...     ...       ....
A             Z             ...     ...       ....
A             -             ...     ...       ....             
B             Y             ...     ...       ....
B             Z             ...     ...       ....
B             -             ...     ...       ....
-             Y             ...     ...       ....
-             Z             ...     ...       ....
4

2 回答 2

3

多年来,有关 R 难以“报告”的投诉一直存在。确实没有用于在表格中插入小计(或子均值)和总计的内置函数。SQL 驱动程序的接口可以提供一些补救措施,但我不会这么简单,因为你没有使用数据库概念来提出你的问题,我猜这对你不利。这是一种使用总和作为先前答案的结果的全基 R 方法:

R:计算列总和和行总和作为数据帧的聚合

如果您构建一个带有边缘的数组,然后用ftable. 看这里:

R中的分组和排序

tables邓肯默多克的包裹。这可能是我能得出的最接近答案的答案。但我认为对于特定问题“是否有一些简单的方法”来获得具有所要求的复杂性的 R 对象的答案是......不......至少我知道这一点。

于 2013-01-09T20:18:23.500 回答
3

@DWin 是对的,tables包在这里可能是正确的线索。在不考虑格式化的情况下,这是一个示例:

library(tables)
d1 <- data.frame(id = 1:10, c1 = sample(c("a","b"), 10, replace = TRUE), 
        c2 = sample(c("c", "d"), 10, replace = TRUE), measures = rnorm(1:10))
t1 <- tabular((c1 + c2 + c1*c2 +1) ~ (measures)*(mean + median), data = d1)

             measures        
             mean     median 
      c1 a   -0.33306 -0.1801
         b   -0.54121 -0.6381
      c2 c   -0.04862  0.1647
         d   -0.69615 -0.8129
 c1 a c2 c   -0.26195 -0.2619
         d   -0.38047 -0.1801
    b    c    0.16472  0.1647
         d   -1.01182 -1.1863
         All -0.43713 -0.4678

不过进入语法需要一段时间;从好的方面来说,它提供了将表格导出到 LaTeX 的功能。如果您不想要/不需要该tabular对象中的所有标签,您可以通过as.matrix(t1, format = as.numeric).

注意: c1并且c2在公式的左侧必须factor为此工作

于 2013-01-09T20:42:45.683 回答