用R自带的数据集Titanic生成sex和survived两个变量的二维列联表,并为列联表添加上边际和
时间: 2024-10-13 07:12:14 浏览: 28
在R中,你可以使用`table()`函数来创建性别(sex)和生存状态(survived)的二维列联表,`margin.table()`函数用于添加边际频数。假设你的Titanic数据集已经存储在`titanic_data`这个数据框中,并且`survived`和`sex`字段已知。
首先,创建二维列联表:
```R
titanic_table <- table(titanic_data$survived, titanic_data$sex)
```
这将返回一个矩阵,其中第一列是`survived`(0代表未存活,1代表存活),第二列是`sex`("male" 和 "female"),每个单元格表示对应生存状态和性别的人数。
接着,添加边际频数(行总计和列总计):
```R
row_sums <- margin.table(titanic_table, 1)
col_sums <- margin.table(titanic_table, 2)
all_sums <- row_sums + col_sums
# 将边际频数附加到原始表格
titanic_table_marginal <- cbind(titanic_table, row_sums, col_sums, all_sums)
rownames(titanic_table_marginal) <- c("Survived", "Not Survived")
colnames(titanic_table_marginal)[4:6] <- c("Total per Row", "Total per Column", "Grand Total")
```
现在`titanic_table_marginal`就是带有边际频数的列联表。
阅读全文