gpt4 book ai didi

r - 如何用R和 Shiny 制作多层表格?

转载 作者:行者123 更新时间:2023-12-02 03:20:32 27 4
gpt4 key购买 nike

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

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

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

任何帮助将不胜感激。

enter image description here

最佳答案

我认为ftable() function 是您要查找的内容:

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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com