r - 使用 R 创建一个 3 路表
问题描述
我正在尝试使用 R 创建一个 3 路表。
我已经使用下面的代码来总结数据并提出一个 3 路表
3waydata <- data %>% group_by(duration, education, sex) %>%
summarise(count = sum(number))
然后拿出下表
with(3waydata, table(duration, sex, education)
但是我不确定如何在表中包含计数。我有我想要的结构,但不确定如何在表格中包含计数。
education high low medium unknown
duration sex
five-to-ten-years female 1 1 1 1
male 1 1 1 1
five-years-or-less female 1 1 1 1
male 1 1 1 1
more-than-ten-years female 1 1 1 1
male 1 1 1 1
native-born female 1 1 1 1
male 1 1 1 1
unknown female 1 1 1 1
male 1 1 1 1
解决方案
要获得您想要的表格,您可以使用xtabs
and ftable
:
with(`3waydata`, ftable(xtabs(count ~ duration + sex + education)))
#> education high low medium unknown
#> duration sex
#> five-to-ten-years F 8 0 10 0
#> M 0 9 12 11
#> five-years-or-less F 10 10 0 9
#> M 9 14 15 12
#> more-than-ten-years F 22 26 29 10
#> M 0 12 31 0
#> native-born F 0 0 11 0
#> M 12 0 0 0
#> unknown F 0 13 0 0
#> M 0 12 15 11
显然,我必须创建自己的数据,因为您没有提供自己的数据。请注意,这3waydata
不是 R 中的有效变量名,因此没有用引号引起来。
set.seed(69)
data <- data.frame(education = sample(c("high","low","medium","unknown"), 30, T),
sex = rep(c("M", "F"), 15),
duration = sample(c("unknown", "native-born",
"five-years-or-less", "five-to-ten-years",
"more-than-ten-years"), 30, T),
number = rpois(30, 10))
`3waydata` <- data %>%
group_by(duration, education, sex) %>%
summarise(count = sum(number))
推荐阅读
- angular - 在 Angular 中使用电子签名预览 PDF 文件
- node.js - 在 rhel7 上创建自定义 NodeJSDocker 镜像
- javascript - 条件 CSS 不在 React Native 中呈现
- python - Python dict 比较占用大量 CPU 资源
- dart - Dart 使用超类对象创建实例
- python-3.x - pyttsx3 与 tkinter 冲突
- visual-studio-code - vscode if/else 用户定义代码段中的条件
- reactjs - flickity 反应 asNavFor 两个导航不起作用
- javascript - 可以在 Firefox 中更改“保存的密码”样式吗?
- c# - 有没有办法显示 2 位小数而不是自动舍入?