任何人都可以帮助我创建这样的表格(多层)?
我在 R 中尝试了许多不同的功能,例如 table、tapply、aggregate 等。
我可以制作值的部分,但不知道如何添加列和行名称的部分(灰色部分)..
假设有四个变量:性别、年级、年份、地区。
使用 4 个阶乘输入变量,我想用 R 和 Shiny 创建这种形式的表。
表中的值只是计数。
任何帮助将不胜感激。
最佳答案
我认为 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
如果要显示表中每个组的平均收入,有多种选择。一种方法是使用
plyr
和 reshape2
包中的函数组合。可能有更好或更有效的方法,但这可以解决问题:library(plyr)
d1 <- ddply(d, .(Year, Gender, Grade, Area), summarise,
mean=mean(Income))
library(reshape2)
dcast(d1, Year+Area ~ Gender+Grade)
关于r - 如何用R和 Shiny 制作多层表格?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33803173/