문제 설명
R과 반짝이는 다층 테이블을 만드는 방법은 무엇입니까? (How to make multiple layered table form with R and shiny?)
이와 같은 테이블(다중 레이어)을 만드는 데 도움을 줄 수 있는 사람이 있습니까?
R에서 table, tapply, 집계 등과 같은 다양한 기능을 시도했습니다. 값의 일부를 만들 수는 있지만 열과 행의 일부를 추가하는 방법을 모릅니다 이름(회색 부분) ..
성별, 학년, 연도, 지역의 4가지 변수가 있다고 가정합니다. 4개의 팩토리얼 입력 변수로 R과 샤이니를 사용하여 이런 형태의 테이블을 만들고 싶습니다. 표의 값은 단지 개수입니다.
도움을 주시면 감사하겠습니다.
참조 솔루션
방법 1:
I think the ftable()
function is what you're looking for:
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
If you want to display the mean income for each of the groups in the table, there are a number of options. One way is to use a combination of functions from the plyr
and reshape2
packages. There are probably better or more efficient ways, but this does the trick:
library(plyr)
d1 <‑ ddply(d, .(Year, Gender, Grade, Area), summarise,
mean=mean(Income))
library(reshape2)
dcast(d1, Year+Area ~ Gender+Grade)