我知道有一种方法可以轻松地使用一个包...我在几个月前找到了包然后做了。但是,我当时没有记下链接,现在我再也找不到解决方案了!
我的问题是:如何在 R 中创建嵌套表格?例如,我有一个个人数据表。每一排都是不同的人。每列包含一个变量,如年龄,性别,身高等。
我知道使用table命令我可以这样做:table(data $ gender,data $ ageCategory)。
这会产生一个带有计数的2 x 2表。
但是,我想制作一个嵌套表,类似于这里的表(忽略最后一列的总数):http://psycnet.apa.org/journals/ror/32/2/images/ror_32_2_199_tbl1a.gif
即,我想创建一个以性别为列的表,然后将行作为年龄类别,并在每行中添加具有高度类别的其他行。
我找到了一个能够轻松完成此任务的软件包,现在我再也找不到它了!
感谢任何可以提供帮助的人。这是一个有点愚蠢的问题,但我想我可能会有更多运气。也许“嵌套表”并不是真正的名称。
答案 0 :(得分:3)
示例数据集(在您的问题中始终是个好主意):
dat = data.frame(value = runif(100),
age = round(runif(100, min = 9, max = 11)) ,
gender = sample(c("Male", "Female"), 100, replace = TRUE),
school = sample(c("Public", "Private"), 100, replace = TRUE))
现在要根据您发布的示例表生成一些有用的东西:
library(plyr)
tab = count(dat, c("age", "gender", "school"))
# The contents of tab:
# age gender school freq
# 1 9 Female Private 6
# 2 9 Female Public 6
# 3 9 Male Private 7
# 4 9 Male Public 8
# 5 10 Female Private 11
# 6 10 Female Public 13
# 7 10 Male Private 10
# 8 10 Male Public 14
# 9 11 Female Private 3
# 10 11 Female Public 11
# 11 11 Male Private 3
# 12 11 Male Public 8
要生成乳胶表,请查看xtable包。对于Word等,最简单的方法是对count的输出执行一些手动操作。
答案 1 :(得分:2)
您可以将两个以上的变量传递到table
,以便更多地分析数据集的计数。这是对table
帮助页面的示例的修改。
counts <- with(airquality, table(
OzCategory = cut(airquality$Ozone, seq(0, 180, 20)),
Month,
TempHi = Temp > 75
))
print(counts, zero.print = ".")