如何创建比例表并在表格的第一列中包含变量名称?
这是我的代码:
time <- c("Morning", "Evening" ,"Morning", "Morning", "Afternoon", "Evening", "Afternoon")
dollar <- c("1-5", "6-10", "11-15", "1-5", "1-5", "6-10", "6-10")
with_kids <- c("no", "yes", "yes", "no", "no", "yes", "yes")
cluster <- c(1,1,2,3,2,2,3)
dat <- data.frame(time, dollar, with_kids, cluster)
myList <- lapply(dat[head(names(dat), -1)], table, dat$cluster)
myList_Prop <- lapply(myList, prop.table, margin=2)
原始问题:Table of categorical variables by a grouping variable in R
答案 0 :(得分:0)
library(dplyr)
Map(function(x,n){x %>% round(2) %>% as.matrix %>% cbind(name=n,.)},myList_Prop,names(myList)) %>%
do.call(rbind,.) %>%
as.data.frame(stringsAsFactors=FALSE) %>%
within({x<- rownames(.);name[duplicated(name)] <- ""}) %>%
`[`(c(5,1,2,3,4)) %>%
setNames(c('','',1,2,3)) %>%
print(row.names = FALSE)
1 2 3
time Afternoon 0 0.33 0.5
Evening 0.5 0.33 0
Morning 0.5 0.33 0.5
dollar 1-5 0.5 0.33 0.5
11-15 0 0.33 0
6-10 0.5 0.33 0.5
with_kids no 0.5 0.33 0.5
yes 0.5 0.67 0.5