我有一个类似以下结构的数据框:
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 ...
我想针对边距计算条件1和条件2的每个组合的一些汇总度量,和。我可以使用ddply多次调用来做到这一点,但我想知道是否有一些简单的方法可以从中获取单个数据结构,例如:
Condition1 Condition2 Mean Median ....
A Y ... ... ....
A Z ... ... ....
A - ... ... ....
B Y ... ... ....
B Z ... ... ....
B - ... ... ....
- Y ... ... ....
- Z ... ... ....
答案 0 :(得分:3)
多年来,有关R报告“报告”的困难已经发出投诉。实际上没有用于在表格中插入小计(或子手段)和总计的内置函数。 SQL驱动程序的接口可以提供一些补救措施,但我不会这么简单,因为你没有使用数据库概念提出你的问题,我猜这对你不好。这是一种全基R方法,使用总和作为先前答案的结果:
R: calculating column sums & row sums as an aggregation from a dataframe
如果您使用边距构建数组,然后使用ftable
将其“展平”,则可能会有进展的途径。见这里:
Duncan Murdoch有tables
套餐。这可能是我能找到答案的最接近的。但我认为具体问题的答案是“有一些简单的方法”来获得具有所要求的复杂性的R对象是......不......至少我知道的是什么。
答案 1 :(得分: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
才能生效