【发布时间】:2021-10-30 06:15:31
【问题描述】:
我需要一些帮助来创建矩阵。我有一个包含多个组的大型数据集。每一组都分为病例和非病例。
例如
| Group | Cases | Noncases |
|---|---|---|
| GroupA | 4 | 7 |
| GroupB | 9 | 4 |
| GroupC | 10 | 3 |
我想创建一个矩阵,将一个组与其他组的总和进行比较。
例如:
| Disease Category | GroupA | NotGroupA |
|---|---|---|
| Case | 4 | 19 |
| Noncase | 7 | 7 |
我们的目标是建立一个矩阵,让我可以运行卡方检验和/或 Fisher 精确检验(取决于样本量)。
我已尝试使用以下代码将数据框中的值外推到矩阵中:
GroupA <- as.table(matrix(c(df[1,3], df[1,4], (sum(df$group_cases)-df$group_cases[1])), (sum(df$Noncases)-df$Noncases[1])), nrow=2, ncol=2,
dimnames=list(Group= c("A", "Other"),
Case = c(1, 0)))
但是,我收到以下错误:
Warning message:
In matrix(c(df[1, 3], df[1, 4], (sum(df$group_cases) - :
data length [3] is not a sub-multiple or multiple of the number of rows [329]
它输出一个 329 行的列表,而不是一个 2 x 2 矩阵。
因为我有很多组,所以我希望 R 在构造矩阵时为我计算值。我不想单独计算“NotGroup_”列,因为这会为人为错误留出空间。
你们都建议如何构建这个矩阵,是否可以让 R 在创建矩阵时计算列的总和/减去值?
感谢您的帮助!
【问题讨论】:
标签: r math matrix arithmetic-expressions chi-squared