我试图在R中编写一个三向频率表,但由于第三个变量,我感到磕磕绊绊。我希望桌子看起来像这样:
Lung Cancer
Yes No
City Smoking
Beijing Yes 126 100
No 35 61
Shanghai Yes 908 688
No 497 807
提前感谢您的建议!
答案 0 :(得分:0)
实现这一目标的一种方法是使用by()
。例如
by(data = my.data, INDICES = my.data$City, FUN = table, my.data$Smoking, my.data$LungCancer)
答案 1 :(得分:0)
创建数据
City <- c("Beijing", "Shanghai")
Smoking <- c ("No", "Yes")
LungCancer <- c("No", "Yes")
health <- data.frame (City,Smoking, LungCancer)
三向交叉表 我找到了这个包
source("http://pcwww.liv.ac.uk/~william/R/crosstab.r")
crosstab(health, row.vars = c("City","Smoking"), col.vars = "LungCancer",addmargins = FALSE)
希望这会有所帮助: - )