R - 带小计的{Pivot表}

时间:2017-12-18 12:59:09

标签: r reshape2 dcast

如何在R中使用小计(如MS Excel数据透视表)中的Pivots?

我正在使用dcast包中的reshape2在R中创建支点。我还使用rowSumscolSums进行了总计工作。我承认我不理解dcast参数集中的复杂性。我只知道如何创建枢轴,帮助文件正在我的头上。 如果有人可以使用dcast(我怀疑它可以做到这一切)来解决这个问题,那将非常有帮助,并解释解决方案所需的参数。

我正在使用此代码(C2有两个因素,X1和X2):

PIV <- dcast(DF, C1~C2, value.var="C3", sum)

我没有得到所有这些边缘,子集,填充或丢弃的功能。帮助文件似乎过于迟钝,我也没有在互联网上获得太多帮助。

Sample Pivot(没有小计,T是总计):

C1 X1 X2 T
a  12 1  13
a  14 2  16
b  16 3  19
b  11 4  15
b  8  5  13
T  61 15 76

示例预期枢轴(小计t,T为总计)

C1 X1 X2 T
a  12 1  13
a  14 2  16
ta 26 3  29
b  16 3  19
b  11 4  15
b  8  5  13
tb 35 12 47
T  61 15 76

1 个答案:

答案 0 :(得分:3)

假设你没有任何总数,就像这样:

mydf <- structure(list(C1 = c("a", "a", "b", "b", "b"), X1 = c(12L, 14L, 
    16L, 11L, 8L), X2 = 1:5), .Names = c("C1", "X1", "X2"), row.names = c(NA, 
    5L), class = "data.frame")

mydf
##   C1 X1 X2
## 1  a 12  1
## 2  a 14  2
## 3  b 16  3
## 4  b 11  4
## 5  b  8  5

然后你必须使用margins的{​​{1}}参数来获得你想要的输出。

dcast

“margin”参数用于获取小计。在这里,我们根据“C1”(总计)和“ind”变量(小计)进行小计,我们还添加行总数(使用“变量”)。

那就是说,我不确定我是否会推荐这个,因为你在同一张桌子里混合数据和分析。