如何使用R和闪亮的多层表格形成?

时间:2015-11-18 14:51:08

标签: r shiny

任何人都可以帮我创建这样的表(多层)?

我在 R 中尝试了很多不同的功能,例如table,tapply,aggregate等。 我可以制作值的部分,但不知道如何添加列和行名称的部分(灰色部分)..

假设有四个变量:性别,年级,年份,面积。 使用4个阶乘输入变量,我想创建这种形式的表格,其中 R 和闪亮。 表中的值只是计数。

任何帮助将不胜感激。

enter image description here

1 个答案:

答案 0 :(得分:1)

我认为ftable()功能是您正在寻找的功能:

d <- data.frame(Year=sample(c("2007", "2014"), 775, replace=TRUE),
     Gender=sample(c("Mail", "Femail"), 775, replace=TRUE),
     Grade=sample(c("1st grad", "2nd grad", "3rd grad"), 775, replace=TRUE),
     Area=sample(c("City area", "Rural area"), 775, replace=TRUE),
     Income=1000*runif(775))

d1 <- ftable(d, row.vars=c("Year", "Area"), col.vars=c("Gender", "Grade"))
d1

#                 Gender   Femail                       Mail                  
#                 Grade  1st grad 2nd grad 3rd grad 1st grad 2nd grad 3rd grad
# Year Area                                                                   
# 2007 City area               27       32       37       37       30       37
#      Rural area              29       26       25       41       36       30
# 2014 City area               30       29       30       27       32       29
#      Rural area              35       36       42       31       35       32

如果要显示表格中每个组的平均收入,有许多选项。一种方法是使用plyrreshape2包中的函数组合。可能有更好或更有效的方法,但这可以解决问题:

library(plyr)
d1 <- ddply(d, .(Year, Gender, Grade, Area), summarise,
      mean=mean(Income))

library(reshape2)
dcast(d1, Year+Area ~ Gender+Grade)