如何计算R

时间:2016-03-30 03:46:17

标签: r pivot

我有一张这样的表:

Menu name | Transcode
Menu 1    | a1
Menu 2    | a2
Menu 3    | a3
Menu 1    | a1
Menu 3    | a2
Menu 1    | a1
Menu 1    | a3

如何在R中实现此枢轴以计算列x(菜单名称)中的值频率数和与列x相关的列y(Trancode)的频率

enter image description here

2 个答案:

答案 0 :(得分:1)

不是两列输出,最好将它放在三列中(以便于后处理)。我们使用table获取频率计数,使用addmarginssum增加每个" Menu_name"的计数,转换为' data.frame' 。如果需要,我们可以在第一列order输出{' res'}。

 res <- as.data.frame(addmargins(table(df1), 2))
 res1 <- res[order(res[,1]),]
 row.names(res1) <- NULL
 res1[1:2] <- lapply(res1[1:2], as.character)

然后,使用rbind创建&#34; Grand Sum&#34;行

rbind(res1, list("Menu", "Grand Sum", sum(res1$Freq)))
#    Menu_name Transcode Freq
#1     Menu 1        a1    3
#2     Menu 1        a2    0
#3     Menu 1        a3    1
#4     Menu 1       Sum    4
#5     Menu 2        a1    0
#6     Menu 2        a2    1
#7     Menu 2        a3    0
#8     Menu 2       Sum    1
#9     Menu 3        a1    0
#10    Menu 3        a2    1
#11    Menu 3        a3    1
#12    Menu 3       Sum    2
#13      Menu Grand Sum   14

答案 1 :(得分:1)

draggable()